docs: fix dead links, remove ECH.md

This commit is contained in:
Daniel Stenberg 2021-12-16 23:49:39 +01:00
parent 79d6057f1b
commit 1760258b16
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
5 changed files with 5 additions and 142 deletions

View File

@ -8,7 +8,6 @@
[![Backers on Open Collective](https://opencollective.com/curl/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/curl/sponsors/badge.svg)](#sponsors)
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/curl/curl.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/curl/curl/context:cpp)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d11483a0cc5c4ebd9da4ff9f7cd56690)](https://app.codacy.com/app/curl/curl)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/curl.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:curl)
Curl is a command-line tool for transferring data specified with URL

View File

@ -14,7 +14,7 @@ libcurl bindings
[Basic](https://scriptbasic.com/) ScriptBasic bindings written by Peter Verhas
C++: [curlpp](https://curlpp.org/) Written by Jean-Philippe Barrette-LaPierre,
C++: [curlpp](https://github.com/jpbarrette/curlpp/) Written by Jean-Philippe Barrette-LaPierre,
[curlcpp](https://github.com/JosephP91/curlcpp) by Giuseppe Persico and [C++
Requests](https://github.com/libcpr/cpr) by Huu Nguyen
@ -35,7 +35,7 @@ Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo
[Euphoria](https://web.archive.org/web/20050204080544/rays-web.com/eulibcurl.htm) Written by Ray Smith
[Falcon](http://www.falconpl.org/index.ftd?page_id=prjs&prj_id=curl)
[Falcon](http://www.falconpl.org/project_docs/curl/)
[Ferite](https://web.archive.org/web/20150102192018/ferite.org/) Written by Paul Querna
@ -45,7 +45,7 @@ Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo
Go: [go-curl](https://github.com/andelf/go-curl) by ShuYu Wang
[Guile](https://www.lonelycactus.com/guile-curl.html) Written by Michael L. Gran
[Guile](https://github.com/spk121/guile-curl) Written by Michael L. Gran
[Harbour](https://github.com/vszakats/hb/tree/main/contrib/hbcurl) Written by Viktor Szakats
@ -115,7 +115,7 @@ Ruby: [curb](https://github.com/taf2/curb) written by Ross Bamford,
[SP-Forth](https://sourceforge.net/p/spf/spf/ci/master/tree/devel/~ac/lib/lin/curl/) Written by Andrey Cherezov
[SPL](http://www.clifford.at/spl/) Written by Clifford Wolf
[SPL](https://web.archive.org/web/20210203022158/http://www.clifford.at/spl/spldoc/curl.html) Written by Clifford Wolf
[Tcl](https://web.archive.org/web/20160826011806/mirror.yellow5.com/tclcurl/) Tclcurl by Andrés García

View File

@ -18,7 +18,7 @@ libcurl was built to use. This is an attempt to list known cipher names.
## OpenSSL
(based on [OpenSSL docs](https://www.openssl.org/docs/man1.1.0/apps/ciphers.html))
(based on [OpenSSL docs](https://www.openssl.org/docs/manmaster/man1/openssl-ciphers.html))
When specifying multiple cipher names, separate them with colon (`:`).

View File

@ -1,135 +0,0 @@
# TLS: ECH support in curl and libcurl
## Summary
**ECH** means **Encrypted Client Hello**, a TLS 1.3 extension which is
currently the subject of an [IETF Draft][tlsesni]. (ECH was formerly known as
ESNI).
This file is intended to show the latest current state of ECH support
in **curl** and **libcurl**.
At end of August 2019, an [experimental fork of curl][niallorcurl], built
using an [experimental fork of OpenSSL][sftcdopenssl], which in turn provided
an implementation of ECH, was demonstrated interoperating with a server
belonging to the [DEfO Project][defoproj].
Further sections here describe
- resources needed for building and demonstrating **curl** support
for ECH,
- progress to date,
- TODO items, and
- additional details of specific stages of the progress.
## Resources needed
To build and demonstrate ECH support in **curl** and/or **libcurl**,
you will need
- a TLS library, supported by **libcurl**, which implements ECH;
- an edition of **curl** and/or **libcurl** which supports the ECH
implementation of the chosen TLS library;
- an environment for building and running **curl**, and at least
building **OpenSSL**;
- a server, supporting ECH, against which to run a demonstration
and perhaps a specific target URL;
- some instructions.
The following set of resources is currently known to be available.
| Set | Component | Location | Remarks |
|:-----|:-------------|:------------------------------|:-------------------------------------------|
| DEfO | TLS library | [sftcd/openssl][sftcdopenssl] | Tag *esni-2019-08-30* avoids bleeding edge |
| | curl fork | [niallor/curl][niallorcurl] | Tag *esni-2019-08-30* likewise |
| | instructions | [ESNI-README][niallorreadme] | |
## Progress
### PR 4011 (Jun 2019) expected in curl release 7.67.0 (Oct 2019)
- Details [below](#pr-4011);
- New configuration option: `--enable-ech`;
- Build-time check for availability of resources needed for ECH
support;
- Pre-processor symbol `USE_ECH` for conditional compilation of
ECH support code, subject to configuration option and
availability of needed resources.
## TODO
- (next PR) Add libcurl options to set ECH parameters.
- (next PR) Add curl tool command line options to set ECH parameters.
- (WIP) Extend DoH functions so that published ECH parameters can be
retrieved from DNS instead of being required as options.
- (WIP) Work with OpenSSL community to finalize ECH API.
- Track OpenSSL ECH API in libcurl
- Identify and implement any changes needed for CMake.
- Optimize build-time checking of available resources.
- Encourage ECH support work on other TLS/SSL backends.
## Additional detail
### PR 4011
**TLS: Provide ECH support framework for curl and libcurl**
The proposed change provides a framework to facilitate work to implement ECH
support in curl and libcurl. It is not intended either to provide ECH
functionality or to favour any particular TLS-providing backend. Specifically,
the change reserves a feature bit for ECH support (symbol
`CURL_VERSION_ECH`), implements setting and reporting of this bit, includes
dummy book-keeping for the symbol, adds a build-time configuration option
(`--enable-ech`), provides an extendable check for resources available to
provide ECH support, and defines a compiler pre-processor symbol (`USE_ECH`)
accordingly.
Proposed-by: @niallor (Niall O'Reilly)\
Encouraged-by: @sftcd (Stephen Farrell)\
See-also: [this message](https://curl.se/mail/lib-2019-05/0108.html)
Limitations:
- Book-keeping (symbols-in-versions) needs real release number, not 'DUMMY'.
- Framework is incomplete, as it covers autoconf, but not CMake.
- Check for available resources, although extendable, refers only to
specific work in progress ([described
here](https://github.com/sftcd/openssl/tree/master/esnistuff)) to
implement ECH for OpenSSL, as this is the immediate motivation
for the proposed change.
## References
Cloudflare blog: [Encrypting SNI: Fixing One of the Core Internet Bugs][corebug]
Cloudflare blog: [Encrypt it or lose it: how encrypted SNI works][esniworks]
IETF Draft: [Encrypted Server Name Indication for TLS 1.3][tlsesni]
---
[tlsesni]: https://datatracker.ietf.org/doc/draft-ietf-tls-esni/
[esniworks]: https://blog.cloudflare.com/encrypted-sni/
[corebug]: https://blog.cloudflare.com/esni/
[defoproj]: https://defo.ie/
[sftcdopenssl]: https://github.com/sftcd/openssl/
[niallorcurl]: https://github.com/niallor/curl/
[niallorreadme]: https://github.com/niallor/curl/blob/master/ESNI-README.md

View File

@ -57,7 +57,6 @@ EXTRA_DIST = \
CURL-DISABLE.md \
DEPRECATE.md \
DYNBUF.md \
ECH.md \
EXPERIMENTAL.md \
FAQ \
FEATURES.md \