diff options
-rw-r--r-- | CHANGELOG.rst | 4 | ||||
-rw-r--r-- | src/OpenSSL/SSL.py | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ee8dda4..2b6d732 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -18,7 +18,9 @@ Backward-incompatible changes: Deprecations: ^^^^^^^^^^^^^ -*none* +- Deprecated ``OpenSSL.SSL.Context.set_npn_advertise_callback``, ``OpenSSL.SSL.Context.set_npn_select_callback``, and ``OpenSSL.SSL.Connection.get_next_proto_negotiated``. + ALPN should be used instead. + `#820 <https://github.com/pyca/pyopenssl/pull/820>`_ Changes: diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py index de49cf9..232f81d 100644 --- a/src/OpenSSL/SSL.py +++ b/src/OpenSSL/SSL.py @@ -1,5 +1,6 @@ import os import socket +import warnings from sys import platform from functools import wraps, partial from itertools import count, chain @@ -626,6 +627,11 @@ def SSLeay_version(type): return _ffi.string(_lib.SSLeay_version(type)) +def _warn_npn(): + warnings.warn("NPN is deprecated. Protocols should switch to using ALPN.", + DeprecationWarning, stacklevel=3) + + def _make_requires(flag, error): """ Builds a decorator that ensures that functions that rely on OpenSSL @@ -1415,6 +1421,7 @@ class Context(object): .. versionadded:: 0.15 """ + _warn_npn() self._npn_advertise_helper = _NpnAdvertiseHelper(callback) self._npn_advertise_callback = self._npn_advertise_helper.callback _lib.SSL_CTX_set_next_protos_advertised_cb( @@ -1433,6 +1440,7 @@ class Context(object): .. versionadded:: 0.15 """ + _warn_npn() self._npn_select_helper = _NpnSelectHelper(callback) self._npn_select_callback = self._npn_select_helper.callback _lib.SSL_CTX_set_next_proto_select_cb( @@ -2437,6 +2445,7 @@ class Connection(object): .. versionadded:: 0.15 """ + _warn_npn() data = _ffi.new("unsigned char **") data_len = _ffi.new("unsigned int *") |