mirror of
https://github.com/curl/curl.git
synced 2025-02-23 15:10:03 +08:00
docs: fix dead links, remove ECH.md
This commit is contained in:
parent
79d6057f1b
commit
1760258b16
@ -8,7 +8,6 @@
|
||||
[](#backers)
|
||||
[](#sponsors)
|
||||
[](https://lgtm.com/projects/g/curl/curl/context:cpp)
|
||||
[](https://app.codacy.com/app/curl/curl)
|
||||
[](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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 (`:`).
|
||||
|
||||
|
135
docs/ECH.md
135
docs/ECH.md
@ -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
|
@ -57,7 +57,6 @@ EXTRA_DIST = \
|
||||
CURL-DISABLE.md \
|
||||
DEPRECATE.md \
|
||||
DYNBUF.md \
|
||||
ECH.md \
|
||||
EXPERIMENTAL.md \
|
||||
FAQ \
|
||||
FEATURES.md \
|
||||
|
Loading…
Reference in New Issue
Block a user