Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPN: remove support for and use of #9307

Closed
wants to merge 1 commit into from
Closed

NPN: remove support for and use of #9307

wants to merge 1 commit into from

Conversation

bagder
Copy link
Member

@bagder bagder commented Aug 13, 2022

Next Protocol Negotiation is a TLS extension that was created and used for
agreeing to use the SPDY protocol (the precursor to HTTP/2) for HTTPS. In the
early days of HTTP/2, before the spec was finalized and shipped, the protocol
could be enabled using this extension with some servers.

curl supports the NPN extension with some TLS backends since then, with a
command line option --npn and in libcurl with CURLOPT_SSL_ENABLE_NPN.

HTTP/2 proper is made to use the ALPN (Application-Layer Protocol Negotiation)
extension and the NPN extension has no purposes anymore. The HTTP/2 spec was
published in May 2015.

Today, use of NPN in the wild should be extremely rare and most likely totally
extinct. Chrome removed NPN support in Chrome 51, shipped in
June 2016. Removed in Firefox 53, April 2017.

@bagder bagder added TLS libcurl API feature-window A merge of this requires an open feature window labels Aug 13, 2022
src/tool_getparam.c Show resolved Hide resolved
Next Protocol Negotiation is a TLS extension that was created and used
for agreeing to use the SPDY protocol (the precursor to HTTP/2) for
HTTPS. In the early days of HTTP/2, before the spec was finalized and
shipped, the protocol could be enabled using this extension with some
servers.

curl supports the NPN extension with some TLS backends since then, with
a command line option `--npn` and in libcurl with
`CURLOPT_SSL_ENABLE_NPN`.

HTTP/2 proper is made to use the ALPN (Application-Layer Protocol
Negotiation) extension and the NPN extension has no purposes
anymore. The HTTP/2 spec was published in May 2015.

Today, use of NPN in the wild should be extremely rare and most likely
totally extinct. Chrome removed NPN support in Chrome 51, shipped in
June 2016. Removed in Firefox 53, April 2017.

Closes #9307
@bagder bagder self-assigned this Sep 1, 2022
@bagder bagder closed this in 472f1cb Sep 5, 2022
@bagder bagder deleted the bagder/rm-NPN branch September 5, 2022 05:40
vszakats added a commit to curl/curl-for-win that referenced this pull request Aug 10, 2023
- `no-nextprotoneg`:
  Obsolete. Support deleted from curl 7.86.0 (2022-09-05):
  curl/curl@472f1cb
  curl/curl#9307

Obsolete, not used by curl and libssh2:
- `no-cmac`
- `no-rc2`
- `no-mdc2`
- `no-whirlpool`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-window A merge of this requires an open feature window libcurl API TLS
Development

Successfully merging this pull request may close these issues.

None yet

3 participants