75c8171
%global srcname paramiko
Shahms King 6de5a2d
8b748cf
Name:          python-%{srcname}
206f197
Version:       3.4.0
fca23cf
Release:       3%{?dist}
7e558fe
Summary:       SSH2 protocol library for python
Shahms King 6de5a2d
3ceb430
# No version specified
7ca5c82
License:       LGPL-2.1-or-later
Igor Gnatenko 8879174
URL:           https://github.com/paramiko/paramiko
Igor Gnatenko 8879174
Source0:       %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
7c6099a
7c6099a
# Remove pytest-relaxed, which depends on pytest4
7c6099a
# Can be removed when https://github.com/paramiko/paramiko/pull/1665/ is released
7c6099a
Patch3:        0003-remove-pytest-relaxed-dep.patch
7c6099a
8f40f89
# icecream not packaged in Fedora, nor needed for regular builds
8f40f89
Patch4:        0004-remove-icecream-dep.patch
51a4995
0d0f560
# Avoid use of lexicon via invoke since we're avoiding invoke as a dependency;
0d0f560
# instead, use lexicon directly
0d0f560
Patch5:        0005-remove-invoke-dep.patch
0d0f560
e5a76ec
# compatibility with pytest 8
e5a76ec
Patch6:        https://github.com/paramiko/paramiko/commit/1dc172d003.patch
e5a76ec
7e558fe
BuildArch:     noarch
739aeb2
7f11329
%global paramiko_desc \
6c6f493
Paramiko (a combination of the Esperanto words for "paranoid" and "friend") is\
7f11329
a module for python 2.3 or greater that implements the SSH2 protocol for secure\
7f11329
(encrypted and authenticated) connections to remote machines. Unlike SSL (aka\
6c6f493
TLS), the SSH2 protocol does not require hierarchical certificates signed by a\
7f11329
powerful central authority. You may know SSH2 as the protocol that replaced\
7f11329
telnet and rsh for secure access to remote shells, but the protocol also\
7f11329
includes the ability to open arbitrary channels to remote services across an\
70b21bc
encrypted tunnel (this is how sftp works, for example).
7f11329
Shahms King 6de5a2d
%description
6c753b9
%{paramiko_desc}
8b748cf
Orion Poplawski 58897d5
%package -n python%{python3_pkgversion}-%{srcname}
7e558fe
Summary:       SSH2 protocol library for python
8f40f89
BuildRequires: python%{python3_pkgversion}-devel >= 3.6
8f40f89
BuildRequires: %{py3_dist bcrypt} >= 3.2
8f40f89
BuildRequires: %{py3_dist cryptography} >= 3.3
0d0f560
BuildRequires: %{py3_dist lexicon} >= 2.0.1
06735e8
BuildRequires: %{py3_dist pyasn1} >= 0.1.7
8f40f89
BuildRequires: %{py3_dist pynacl} >= 1.5
5e0f30d
BuildRequires: %{py3_dist pytest}
3ceb430
BuildRequires: %{py3_dist setuptools}
06735e8
Recommends:    %{py3_dist pyasn1} >= 0.1.7
Orion Poplawski 58897d5
Orion Poplawski 58897d5
%description -n python%{python3_pkgversion}-%{srcname}
7f11329
%{paramiko_desc}
7f11329
8b748cf
Python 3 version.
7e558fe
7e558fe
%package doc
7e558fe
Summary:       Docs and demo for SSH2 protocol library for python
Igor Gnatenko 8879174
BuildRequires: /usr/bin/sphinx-build
7e558fe
Requires:      %{name} = %{version}-%{release}
7e558fe
7e558fe
%description doc
7e558fe
%{paramiko_desc}
7e558fe
7e558fe
This is the documentation and demos.
7e558fe
Shahms King 6de5a2d
%prep
e0c26d4
%autosetup -p1 -n %{srcname}-%{version}
75c8171
25446ec
chmod -c a-x demos/*
7e558fe
sed -i -e '/^#!/,1d' demos/*
Shahms King 6de5a2d
Shahms King 6de5a2d
%build
8b748cf
%py3_build
Shahms King 6de5a2d
Shahms King 6de5a2d
%install
8b748cf
%py3_install
75c8171
Igor Gnatenko 8879174
sphinx-build -b html sites/docs/ html/
8fcc17a
rm html/.buildinfo
Igor Gnatenko 8879174
75c8171
%check
1c1d6a4
PYTHONPATH=%{buildroot}%{python3_sitelib} pytest-%{python3_version}
1c1d6a4
Orion Poplawski 58897d5
%files -n python%{python3_pkgversion}-%{srcname}
7e558fe
%license LICENSE
b672aaf
%doc README.rst
8b748cf
%{python3_sitelib}/%{srcname}-*.egg-info/
8b748cf
%{python3_sitelib}/%{srcname}/
7e558fe
7e558fe
%files doc
Igor Gnatenko 8879174
%doc html/ demos/
7e558fe
Shahms King 6de5a2d
%changelog
fca23cf
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.0-3
fca23cf
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
fca23cf
9c98a29
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.0-2
9c98a29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
9c98a29
206f197
* Tue Dec 19 2023 Gwyn Ciesla <gwync@protonmail.com> - 3.4.0-1
206f197
- 3.4.0
30c2e26
  - 'Transport' grew a new 'packetizer_class' kwarg for overriding the
30c2e26
    packet-handler class used internally (mostly for testing, but advanced
30c2e26
    users may find this useful when doing deep hacks)
30c2e26
  - Address CVE 2023-48795 (https://terrapin-attack.com/) a.k.a. the "Terrapin
30c2e26
    Attack", a vulnerability found in the SSH protocol re: treatment of packet
30c2e26
    sequence numbers) as follows:
30c2e26
    - The vulnerability only impacts encrypt-then-MAC digest algorithms in
30c2e26
      tandem with CBC ciphers, and ChaCha20-poly1305; of these, Paramiko
30c2e26
      currently only implements 'hmac-sha2-(256|512)-etm' in tandem with
30c2e26
      'AES-CBC'; if you are unable to upgrade to Paramiko versions containing
30c2e26
      the below fixes right away, you may instead use the 'disabled_algorithms'
30c2e26
      connection option to disable the ETM MACs and/or the CBC ciphers (this
30c2e26
      option is present in Paramiko ≥ 2.6)
30c2e26
    - As the fix for the vulnerability requires both ends of the connection to
30c2e26
      cooperate, the below changes will only take effect when the remote end is
30c2e26
      OpenSSH ≥ 9.6 (or equivalent, such as Paramiko in server mode, as of this
30c2e26
      patch version) and configured to use the new "strict kex" mode (Paramiko
30c2e26
      will always attempt to use "strict kex" mode if offered by the server,
30c2e26
      unless you override this by specifying 'strict_kex=False' in
30c2e26
      'Transport.__init__')
30c2e26
    - Paramiko will now raise an 'SSHException' subclass ('MessageOrderError')
30c2e26
      when protocol messages are received in unexpected order; this includes
30c2e26
      situations like receiving 'MSG_DEBUG' or 'MSG_IGNORE' during initial key
30c2e26
      exchange, which are no longer allowed during strict mode
30c2e26
    - Key (re)negotiation -- i.e. 'MSG_NEWKEYS', whenever it is encountered --
30c2e26
      now resets packet sequence numbers (this should be invisible to users
30c2e26
      during normal operation, only causing exceptions if the exploit is
30c2e26
      encountered, which will usually result in, again, 'MessageOrderError')
30c2e26
    - Sequence number rollover will now raise 'SSHException' if it occurs
30c2e26
      during initial key exchange (regardless of strict mode status)
30c2e26
  - Tweak 'ext-info-(c|s)' detection during KEXINIT protocol phase; the
30c2e26
    original implementation made assumptions based on an OpenSSH implementation
30c2e26
    detail
206f197
b672aaf
* Sun Jul 30 2023 Paul Howarth <paul@city-fan.org> - 3.3.1-1
b672aaf
- Update to 3.3.1 (rhbz#2227478)
b672aaf
  - Cleaned up some very old root level files, mostly just to exercise some of
b672aaf
    our doc build and release machinery
b672aaf
7a47aba
* Fri Jul 28 2023 Gwyn Ciesla <gwync@protonmail.com> - 3.3.0-1
7a47aba
- 3.3.0
77356f6
  - Add support and tests for 'Match final ..' (frequently used in ProxyJump
77356f6
    configurations to exclude the jump host) to our SSH config parser (GH#1907,
77356f6
    GH#1992)
77356f6
  - Add an explicit 'max_concurrent_prefetch_requests' argument to
77356f6
    'paramiko.client.SSHClient.get' and 'paramiko.client.SSHClient.getfo',
77356f6
    allowing users to limit the number of concurrent requests used during
77356f6
    prefetch (GH#1587, GH#2058)
7a47aba
c123cfc
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.0-3
c123cfc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
c123cfc
aed9065
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 3.2.0-2
aed9065
- Rebuilt for Python 3.12
aed9065
0d0f560
* Sat May 27 2023 Paul Howarth <paul@city-fan.org> - 3.2.0-1
0d0f560
- Update to 3.2.0 (rhbz#2210398)
0d0f560
  - Fixed a very sneaky bug found at the apparently rarely-traveled
0d0f560
    intersection of RSA-SHA2 keys, certificates, SSH agents, and
0d0f560
    stricter-than-OpenSSH server targets, which manifested as yet another
0d0f560
    "well, if we turn off SHA2 at one end or another, everything works again"
0d0f560
    problem, for example with version 12 of the Teleport server endpoint
0d0f560
  - The 'server-sig-algs' and 'RSA-SHA2' features added around Paramiko 2.9 or
0d0f560
    so, had the annoying side effect of not working with servers that don't
0d0f560
    support *either* of those feature sets, requiring use of
0d0f560
    'disabled_algorithms' to forcibly disable the SHA2 algorithms on Paramiko's
0d0f560
    end (GH#1961, GH#2012 and countless others)
0d0f560
    - The *experimental* '~paramiko.transport.ServiceRequestingTransport' (noted
0d0f560
      in its own entry in this changelog) includes a fix for this issue,
0d0f560
      specifically by falling back to the same algorithm as the in-use pubkey if
0d0f560
      it's in the algorithm list (leaving the "first algorithm in said list" as
0d0f560
      an absolute final fallback)
0d0f560
  - Implement '_fields()' on '~paramiko.agent.AgentKey' so that it may be
0d0f560
    compared (via '==') with other '~paramiko.pkey.PKey' instances
0d0f560
  - Since its inception, Paramiko has (for reasons lost to time) implemented
0d0f560
    authentication as a side effect of handling affirmative replies to
0d0f560
    'MSG_SERVICE_REQUEST' protocol messages; what this means is Paramiko makes
0d0f560
    one such request before every 'MSG_USERAUTH_REQUEST', i.e. every auth
0d0f560
    attempt (GH#23)
0d0f560
    - OpenSSH doesn't care if clients send multiple service requests, but other
0d0f560
      server implementations are often stricter in what they accept after an
0d0f560
      initial service request (due to the RFCs not being clear), which can
0d0f560
      result in odd behavior when a user doesn't authenticate successfully on
0d0f560
      the very first try (for example, when the right key for a target host is
0d0f560
      the third in one's ssh-agent)
0d0f560
    - This version of Paramiko now contains an opt-in
0d0f560
      '~paramiko.transport.Transport' subclass,
0d0f560
      '~paramiko.transport.ServiceRequestingTransport', which more-correctly
0d0f560
      implements service request handling in the Transport, and uses an
0d0f560
      auth-handler subclass internally that has been similarly adapted; users
0d0f560
      wanting to try this new experimental code path may hand this class to
0d0f560
      'SSHClient.connect` as its 'transport_factory' kwarg
0d0f560
    - This feature is *EXPERIMENTAL* and its code may be subject to change
0d0f560
    - Minor backwards incompatible changes exist in the new code paths, most
0d0f560
      notably the removal of the (inconsistently applied and rarely used)
0d0f560
      'event' arguments to the 'auth_xxx' methods
0d0f560
    - GSSAPI support has only been partially implemented, and is untested
0d0f560
    - Some minor backwards-*compatible* changes were made to the *existing*
0d0f560
      Transport and AuthHandler classes to facilitate the new code; for
0d0f560
      example, 'Transport._handler_table' and
0d0f560
      'AuthHandler._client_handler_table' are now properties instead of raw
0d0f560
      attributes
0d0f560
  - Users of '~paramiko.client.SSHClient' can now configure the authentication
0d0f560
    logic Paramiko uses when connecting to servers; this functionality is
0d0f560
    intended for advanced users and higher-level libraries such as 'Fabric'
0d0f560
    (https://fabfile.org/); see '~paramiko.auth_strategy' for details (GH#387)
0d0f560
    - Fabric's co-temporal release includes a proof-of-concept use of this
0d0f560
      feature, implementing an auth flow much closer to that of the OpenSSH
0d0f560
      client (versus Paramiko's legacy behavior); it is *strongly recommended*
0d0f560
      that if this interests you, investigate replacing any direct use of
0d0f560
      'SSHClient' with Fabric's 'Connection'
0d0f560
    - This feature is **EXPERIMENTAL**; please see its docs for details
0d0f560
  - Enhanced '~paramiko.agent.AgentKey' with new attributes, such as:
0d0f560
    - Added a 'comment' attribute (and constructor argument);
0d0f560
      'Agent.get_keys()' now uses this kwarg to store any comment field sent
0d0f560
      over by the agent; the original version of the agent feature inexplicably
0d0f560
      did not store the comment anywhere
0d0f560
    - Agent-derived keys now attempt to instantiate a copy of the appropriate
0d0f560
      key class for access to other algorithm-specific members (e.g. key size);
0d0f560
      this is available as the '.inner_key' attribute
0d0f560
      - This functionality is now in use in Fabric's new '--list-agent-keys'
0d0f560
        feature, as well as in Paramiko's debug logging
0d0f560
  - '~paramiko.pkey.PKey' now offers convenience "meta-constructors", static
0d0f560
    methods that simplify the process of instantiating the correct subclass for
0d0f560
    a given key input
0d0f560
    - For example, 'PKey.from_path' can load a file path without knowing
0d0f560
      *a priori* what type of key it is (thanks to some handy methods within
0d0f560
      our cryptography dependency); going forwards, we expect this to be the
0d0f560
      primary method of loading keys by user code that runs on "human time"
0d0f560
      (i.e. where some minor efficiencies are worth the convenience)
0d0f560
    - In addition, 'PKey.from_type_string' now exists, and is being used in
0d0f560
      some internals to load ssh-agent keys
0d0f560
    - As part of these changes, '~paramiko.pkey.PKey' and friends grew a
0d0f560
      '~paramiko.pkey.PKey.identifiers' classmethod; this is inspired by the
0d0f560
      '~paramiko.ecdsakey.ECDSAKey.supported_key_format_identifiers' classmethod
0d0f560
      (which now refers to the new method); this also includes adding a '.name'
0d0f560
      attribute to most key classes (which will eventually replace
0d0f560
      '.get_name()')
0d0f560
  - '~paramiko.pkey.PKey' grew a new '.algorithm_name' property that displays
0d0f560
    the key algorithm; this is typically derived from the value of
0d0f560
    '~paramiko.pkey.PKey.get_name'; for example, ED25519 keys have a 'get_name'
0d0f560
    of 'ssh-ed25519' (the SSH protocol key type field value), and now have a
0d0f560
    'algorithm_name' of 'ED25519'
0d0f560
  - '~paramiko.pkey.PKey' grew a new '.fingerprint' property that emits a
0d0f560
    fingerprint string matching the SHA256+Base64 values printed by various
0d0f560
    OpenSSH tooling (e.g. 'ssh-add -l', 'ssh -v'); this is intended to help
0d0f560
    troubleshoot Paramiko-vs-OpenSSH behavior and will eventually replace the
0d0f560
    venerable 'get_fingerprint' method
0d0f560
  - '~paramiko.agent.AgentKey' had a dangling Python 3 incompatible '__str__'
0d0f560
    method returning bytes; this method has been removed, allowing the
0d0f560
    superclass' ('~paramiko.pkey.PKey') method to run instead
0d0f560
036ab03
* Sun Mar 12 2023 Paul Howarth <paul@city-fan.org> - 3.1.0-1
036ab03
- Update to 3.1.0 (rhbz#2177436)
036ab03
  - Add an explicit 'channel_timeout' keyword argument to
036ab03
    'paramiko.client.SSHClient.connect', allowing users to configure the
036ab03
     previously-hardcoded default value of 3600 seconds (GH#2009, GH#2013, and
036ab03
     others)
036ab03
  - Accept single tabs as field separators (in addition to single spaces) in
036ab03
    'paramiko.hostkeys.HostKeyEntry.from_line' for parity with OpenSSH's
036ab03
    KnownHosts parser (GH#2173)
036ab03
  - Apply 'codespell' to the codebase, which found a lot of very old minor
036ab03
    spelling mistakes in docstrings; also, modernize many instances of '*largs'
036ab03
    vs. '*args' and '**kwarg' vs. '**kwargs' (GH#2178)
036ab03
8f40f89
* Sun Jan 22 2023 Paul Howarth <paul@city-fan.org> - 3.0.0-1
8f40f89
- Update to 3.0.0 (rhbz#2162914)
8f40f89
  - Remove some unnecessary '__repr__' calls when handling bytes-vs-str
8f40f89
    conversions; this was apparently doing a lot of unintentional data
8f40f89
    processing, which adds up in some use cases, such as SFTP transfers,
8f40f89
    which may now be significantly faster (GH#2110)
8f40f89
  - Streamline some redundant (and costly) byte conversion calls in the
8f40f89
    packetizer and the core SFTP module; this should lead to some SFTP
8f40f89
    speedups at the very least (GH#2165)
8f40f89
  - 'paramiko.util.retry_on_signal' (and any internal uses of same, and also
8f40f89
    any internal retries of 'EINTR' on e.g. socket operations) has been
8f40f89
    removed; as of Python 3.5, per PEP 475 (https://peps.python.org/pep-0475/),
8f40f89
    this functionality (and retrying 'EINTR' generally) is now part of the
8f40f89
    standard library
8f40f89
    Note: This change is backwards incompatible if you were explicitly
8f40f89
    importing/using this particular function; the observable behavior otherwise
8f40f89
    should not be changing
8f40f89
  - '~paramiko.config.SSHConfig' used to straight-up delete the 'proxycommand'
8f40f89
    key from config lookup results when the source config said
8f40f89
    'ProxyCommand none'; this has been altered to preserve the key and give it
8f40f89
    the Python value 'None', thus making the Python representation more in line
8f40f89
    with the source config file
8f40f89
    Note: This change is backwards incompatible if you were relying on the old
8f40f89
    (1.x, 2.x) behavior for some reason (e.g. assuming all 'proxycommand'
8f40f89
    values were valid subcommand strings)
8f40f89
  - The behavior of private key classes' (i.e. anything inheriting from
8f40f89
    '~paramiko.pkey.PKey') private key writing methods used to perform a
8f40f89
    manual, extra 'chmod' call after writing; this hasn't been strictly
8f40f89
    necessary since the mid 2.x release line (when key writing started giving
8f40f89
    the 'mode' argument to 'os.open'), and has now been removed entirely; this
8f40f89
    should only be observable if you were mocking Paramiko's system calls
8f40f89
    during your own testing, or similar
8f40f89
  - 'PKey.__cmp__' has been removed - ordering-oriented comparison of key files
8f40f89
    is unlikely to have ever made sense (the old implementation attempted to
8f40f89
    order by the hashes of the key material) and so we have not bothered
8f40f89
    setting up '__lt__' and friends at this time; the class continues to have
8f40f89
    its original '__eq__' untouched
8f40f89
    Note: This change is backwards incompatible if you were actually trying to
8f40f89
    sort public key objects (directly or indirectly); please file bug reports
8f40f89
    detailing your use case if you have some intractable need for this
8f40f89
    behavior, and we'll consider adding back the necessary Python 3 magic
8f40f89
    methods so that it works as before
8f40f89
  - A handful of lower-level classes (notably 'paramiko.message.Message' and
8f40f89
    'paramiko.pkey.PKey') previously returned 'bytes' objects from their
8f40f89
    implementation of '__str__', even under Python 3; and there was never any
8f40f89
    '__bytes__' method; these issues have been fixed by renaming '__str__' to
8f40f89
    '__bytes__' and relying on Python's default "stringification returns the
8f40f89
    output of '__repr__'" behavior re: any real attempts to 'str()' such objects
8f40f89
  - 'paramiko.common.asbytes' has been moved to 'paramiko.util.asbytes'
8f40f89
    Note: This change is backwards incompatible if you were directly using this
8f40f89
    function (which is unlikely)
8f40f89
  - Remove the now irrelevant 'paramiko.py3compat' module
8f40f89
    Note: This change is backwards incompatible - such references should be
8f40f89
    search-and-replaced with their modern Python 3.6+ equivalents; in some
8f40f89
    cases, still-useful methods or values have been moved to 'paramiko.util'
8f40f89
    (most) or 'paramiko.common' ('byte_*')
8f40f89
  - Drop support for Python versions less than 3.6, including Python 2; so long
8f40f89
    and thanks for all the fish! Our packaging metadata has been updated to
8f40f89
    include 'python_requires', so this should not cause breakage unless you're
8f40f89
    on an old installation method that can't read this metadata
8f40f89
    Note: As part of this change, our dependencies have been updated; e.g. we
8f40f89
    now require Cryptography>=3.3, up from 2.5
8f40f89
1e0ed18
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-2
1e0ed18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
1e0ed18
7ca5c82
* Sun Nov  6 2022 Paul Howarth <paul@city-fan.org> - 2.12.0-1
7ca5c82
- Update to 2.12.0 (rhbz#2140281)
7ca5c82
  - Add a 'transport_factory' kwarg to 'SSHClient.connect' for advanced users
7ca5c82
    to gain more control over early Transport setup and manipulation (GH#2054,
7ca5c82
    GH#2125)
7ca5c82
  - Update '~paramiko.client.SSHClient' so it explicitly closes its wrapped
7ca5c82
    socket object upon encountering socket errors at connection time; this
7ca5c82
    should help somewhat with certain classes of memory leaks, resource
7ca5c82
    warnings, and/or errors (though we hasten to remind everyone that Client
7ca5c82
    and Transport have their own '.close()' methods for use in non-error
7ca5c82
    situations!) (GH#1822)
7ca5c82
  - Raise '~paramiko.ssh_exception.SSHException' explicitly when blank private
7ca5c82
    key data is loaded, instead of the natural result of 'IndexError'; this
7ca5c82
    should help more bits of Paramiko or Paramiko-adjacent codebases to
7ca5c82
    correctly handle this class of error (GH#1599, GH#1637)
7ca5c82
- Use SPDX-format license tag
7ca5c82
0bbd536
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-3
0bbd536
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
0bbd536
edad47b
* Tue Jun 14 2022 Python Maint <python-maint@redhat.com> - 2.11.0-2
edad47b
- Rebuilt for Python 3.11
edad47b
0e60a9f
* Tue May 17 2022 Paul Howarth <paul@city-fan.org> - 2.11.0-1
0e60a9f
- Update to 2.11.0
0e60a9f
  - Align signature verification algorithm with OpenSSH re: zero-padding
0e60a9f
    signatures that don't match their nominal size/length; this shouldn't
0e60a9f
    affect most users, but will help Paramiko-implemented SSH servers handle
0e60a9f
    poorly behaved clients such as PuTTY (GH#1933)
0e60a9f
  - OpenSSH 7.7 and older has a bug preventing it from understanding how to
0e60a9f
    perform SHA2 signature verification for RSA certificates (specifically
0e60a9f
    certs - not keys), so when we added SHA2 support it broke all clients using
0e60a9f
    RSA certificates with these servers; this has been fixed in a manner similar
0e60a9f
    to what OpenSSH's own client does - a version check is performed and the
0e60a9f
    algorithm used is downgraded if needed (GH#2017)
0e60a9f
  - Recent versions of Cryptography have deprecated Blowfish algorithm support;
0e60a9f
    in lieu of an easy method for users to remove it from the list of
0e60a9f
    algorithms Paramiko tries to import and use, we've decided to remove it
0e60a9f
    from our "preferred algorithms" list, which will both discourage use of a
0e60a9f
    weak algorithm, and avoid warnings (GH#2038, GH#2039)
0e60a9f
  - Windows-native SSH agent support as merged in 2.10 could encounter
0e60a9f
    'Errno 22' 'OSError' exceptions in some scenarios (e.g. server not cleanly
0e60a9f
    closing a relevant named pipe); this has been worked around and should be
0e60a9f
    less problematic (GH#2008, GH#2010)
0e60a9f
  - Add SSH config token expansion (eg '%%h', '%%p') when parsing 'ProxyJump'
0e60a9f
    directives (GH#1951)
0e60a9f
  - Apply unittest 'skipIf' to tests currently using SHA1 in their critical
0e60a9f
    path, to avoid failures on systems starting to disable SHA1 outright in
0e60a9f
    their crypto backends (e.g. RHEL 9) (GH#2004, GH#2011)
0e60a9f
664ff7e
* Tue Apr 26 2022 Paul Howarth <paul@city-fan.org> - 2.10.4-1
664ff7e
- Update to 2.10.4
664ff7e
  - Update 'camelCase' method calls against the 'threading' module to be
664ff7e
    'snake_case'; this and related tweaks should fix some deprecation warnings
664ff7e
    under Python 3.10 (GH#1838, GH#1870, GH#2028)
664ff7e
  - '~paramiko.pkey.PKey' instances' '__eq__' did not have the usual safety
664ff7e
    guard in place to ensure they were being compared to another 'PKey' object,
664ff7e
    causing occasional spurious 'BadHostKeyException', among other things
664ff7e
    (GH#1964, GH#2023, GH#2024)
664ff7e
  - Servers offering certificate variants of hostkey algorithms (e.g.
664ff7e
    'ssh-rsa-cert-v01@openssh.com') could not have their host keys verified by
664ff7e
    Paramiko clients, as it only ever considered non-cert key types for that
664ff7e
    part of connection handshaking (GH#2035)
664ff7e
7c6099a
* Mon Mar 21 2022 Paul Howarth <paul@city-fan.org> - 2.10.3-2
7c6099a
- Skip tests that would fail without SHA-1 signing support in backend, such as
7c6099a
  on EL-9 (GH#2011)
7c6099a
f978985
* Sat Mar 19 2022 Paul Howarth <paul@city-fan.org> - 2.10.3-1
f978985
- Update to 2.10.3
f978985
  - Certificate-based pubkey auth was inadvertently broken when adding SHA2
f978985
    support in version 2.9.0 (GH#1963, GH#1977)
f978985
  - Switch from module-global to thread-local storage when recording thread IDs
f978985
    for a logging helper; this should avoid one flavor of memory leak for
f978985
    long-running processes (GH#2002, GH#2003)
f978985
d96befc
* Tue Mar 15 2022 Paul Howarth <paul@city-fan.org> - 2.10.2-1
d96befc
- Update to 2.10.2
d96befc
  - Fix Python 2 compatibility breakage introduced in 2.10.1 (GH#2001)
d96befc
- Re-enable sftp tests, no longer failing under mock
d96befc
fb06a82
* Sun Mar 13 2022 Paul Howarth <paul@city-fan.org> - 2.10.1-1
fb06a82
- Update to 2.10.1
fb06a82
  - CVE-2022-24302: Creation of new private key files using
fb06a82
    '~paramiko.pkey.PKey' subclasses was subject to a race condition between
fb06a82
    file creation and mode modification, which could be exploited by an
fb06a82
    attacker with knowledge of where the Paramiko-using code would write out
fb06a82
    such files; this has been patched by using 'os.open' and 'os.fdopen' to
fb06a82
    ensure new files are opened with the correct mode immediately (we've left
fb06a82
    the subsequent explicit 'chmod' in place to minimize any possible
fb06a82
    disruption, though it may get removed in future backwards-incompatible
fb06a82
    updates)
fb06a82
  - Add support for the '%%C' token when parsing SSH config files (GH#1976)
fb06a82
  - Add support for OpenSSH's Windows agent as a fallback when Putty/WinPageant
fb06a82
    isn't available or functional (GH#1509, GH#1837, GH#1868)
fb06a82
  - Significantly speed up low-level read/write actions on
fb06a82
    '~paramiko.sftp_file.SFTPFile' objects by using 'bytearray'/'memoryview'
fb06a82
    (GH#892); this is unlikely to change anything for users of the higher level
fb06a82
    methods like 'SFTPClient.get' or 'SFTPClient.getfo', but users of
fb06a82
    'SFTPClient.open' will likely see orders of magnitude improvements for
fb06a82
    files larger than a few megabytes in size
fb06a82
  - Add 'six' explicitly to install-requires; it snuck into active use at some
fb06a82
    point but has only been indicated by transitive dependency on 'bcrypt'
fb06a82
    until they somewhat-recently dropped it (GH#1985); this will be short-lived
fb06a82
    until we drop Python 2 support
fb06a82
226dff0
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.2-3
226dff0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
226dff0
85406ba
* Fri Jan 14 2022 Paul Howarth <paul@city-fan.org> - 2.9.2-2
85406ba
- Avoid use of deprecated python-mock by using unittest.mock instead
85406ba
  https://github.com/paramiko/paramiko/pull/1666
85406ba
3af7678
* Sat Jan  8 2022 Paul Howarth <paul@city-fan.org> - 2.9.2-1
3af7678
- Update to 2.9.2
3af7678
  - Connecting to servers that support 'server-sig-algs' but which have no
3af7678
    overlap between that list and what a Paramiko client supports, now raise
3af7678
    an exception instead of defaulting to 'rsa-sha2-512' (since the use of
3af7678
    'server-sig-algs' allows us to know what the server supports)
3af7678
  - Enhanced log output when connecting to servers that do not support
3af7678
    'server-sig-algs' extensions, making the new-as-of-2.9 defaulting to SHA2
3af7678
    pubkey algorithms more obvious when it kicks in
3af7678
bddd8af
* Sat Dec 25 2021 Paul Howarth <paul@city-fan.org> - 2.9.1-1
bddd8af
- Update to 2.9.1
bddd8af
  - Server-side support for 'rsa-sha2-256' and 'ssh-rsa' wasn't fully operable
bddd8af
    after 2.9.0's release (signatures for RSA pubkeys were always run through
bddd8af
    'rsa-sha2-512' instead) (GH#1935)
bddd8af
6a3f09d
* Fri Dec 24 2021 Paul Howarth <paul@city-fan.org> - 2.9.0-1
6a3f09d
- Update to 2.9.0
6a3f09d
  - Add support for SHA-2 variants of RSA key verification algorithms (as
6a3f09d
    described in RFC 8332) as well as limited SSH extension negotiation (RFC
6a3f09d
    8308) (GH#1326, GH#1643, GH#1644, GH#1925)
6a3f09d
    How SSH servers/clients decide when and how to use this functionality can be
6a3f09d
    complicated; Paramiko's support is as follows:
6a3f09d
    - Client verification of server host key during key exchange will now prefer
6a3f09d
      rsa-sha2-512, rsa-sha2-256, and legacy ssh-rsa algorithms, in that order,
6a3f09d
      instead of just ssh-rsa
6a3f09d
    - Note that the preference order of other algorithm families such as
6a3f09d
      ed25519 and ecdsa has not changed; for example, those two groups are still
6a3f09d
      preferred over RSA
6a3f09d
    - Server mode will now offer all 3 RSA algorithms for host key verification
6a3f09d
      during key exchange, similar to client mode, if it has been configured
6a3f09d
      with an RSA host key
6a3f09d
    - Client mode key exchange now sends the ext-info-c flag signaling support
6a3f09d
      for MSG_EXT_INFO, and support for parsing the latter (specifically, its
6a3f09d
      server-sig-algs flag) has been added
6a3f09d
    - Client mode, when performing public key authentication with an RSA key or
6a3f09d
      cert, will act as follows:
6a3f09d
      - In all cases, the list of algorithms to consider is based on the new
6a3f09d
        preferred_pubkeys list and disabled_algorithms; this list, like with
6a3f09d
        host keys, prefers SHA2-512, SHA2-256 and SHA1, in that order
6a3f09d
      - When the server does not send server-sig-algs, Paramiko will attempt
6a3f09d
        the first algorithm in the above list; clients connecting to legacy
6a3f09d
        servers should thus use disabled_algorithms to turn off SHA2
6a3f09d
      - When the server does send server-sig-algs, the first algorithm
6a3f09d
        supported by both ends is used, or if there is none, it falls back to
6a3f09d
        the previous behavior
6a3f09d
    - SSH agent support grew the ability to specify algorithm flags when
6a3f09d
      requesting private key signatures; this is now used to forward SHA2
6a3f09d
      algorithms when appropriate
6a3f09d
    - Server mode is now capable of pubkey auth involving SHA-2 signatures from
6a3f09d
      clients, provided one's server implementation actually provides for doing
6a3f09d
      so; this includes basic support for sending MSG_EXT_INFO (containing
6a3f09d
      server-sig-algs only) to clients advertising ext-info-c in their key
6a3f09d
      exchange list
6a3f09d
    In order to implement the above, the following API additions were made:
6a3f09d
    - 'PKey.sign_ssh_data <paramiko.pkey.PKey>': Grew an extra, optional
6a3f09d
      'algorithm' keyword argument (defaulting to 'None' for most subclasses,
6a3f09d
      and to "ssh-rsa" for '~paramiko.rsakey.RSAKey')
6a3f09d
    - A new '~paramiko.ssh_exception.SSHException' subclass was added,
6a3f09d
      '~paramiko.ssh_exception.IncompatiblePeer', and is raised in all spots
6a3f09d
      where key exchange aborts due to algorithmic incompatibility; like all
6a3f09d
      other exceptions in that module, it inherits from 'SSHException', and as
6a3f09d
      nothing else was changed about the raising (i.e. the attributes and
6a3f09d
      message text are the same) this change is backwards compatible
6a3f09d
    - '~paramiko.transport.Transport' grew a '_preferred_pubkeys' attribute and
6a3f09d
      matching 'preferred_pubkeys' property to match the other, kex-focused,
6a3f09d
      such members; this allows client pubkey authentication to honor the
6a3f09d
      'disabled_algorithms' feature
6a3f09d
e64d28c
* Mon Nov 29 2021 Paul Howarth <paul@city-fan.org> - 2.8.1-1
e64d28c
- Update to 2.8.1
e64d28c
  - Fix listdir failure when server uses a locale (GH#985, GH#992); now on
e64d28c
    Python 2.7 SFTPAttributes will decode abbreviated month names correctly
e64d28c
    rather than raise 'UnicodeDecodeError'
e64d28c
  - Deleting items from '~paramiko.hostkeys.HostKeys' would incorrectly raise
e64d28c
    'KeyError' even for valid keys, due to a logic bug (GH#1024)
e64d28c
  - Update RSA and ECDSA key decoding subroutines to correctly catch exception
e64d28c
    types thrown by modern versions of Cryptography (specifically 'TypeError'
e64d28c
    and its internal 'UnsupportedAlgorithm') (GH#1257, GH#1266); these
e64d28c
    exception classes will now become '~paramiko.ssh_exception.SSHException'
e64d28c
    instances instead of bubbling up
e64d28c
  - Update '~paramiko.pkey.PKey' and subclasses to compare ('__eq__') via
e64d28c
    direct field/attribute comparison instead of hashing (while retaining the
e64d28c
    existing behavior of '__hash__' via a slight refactor) (GH#908)
e64d28c
    Warning:
e64d28c
    This fixes a security flaw! If you are running Paramiko on 32-bit systems
e64d28c
    with low entropy (such as any 32-bit Python 2, or a 32-bit Python 3 that is
e64d28c
    running with 'PYTHONHASHSEED=0') it is possible for an attacker to craft a
e64d28c
    new keypair from an exfiltrated public key, which Paramiko would consider
e64d28c
    equal to the original key.
e64d28c
    This could enable attacks such as, but not limited to, the following:
e64d28c
    - Paramiko server processes would incorrectly authenticate the attacker
e64d28c
      (using their generated private key) as if they were the victim. We see
e64d28c
      this as the most plausible attack using this flaw.
e64d28c
    - Paramiko client processes would incorrectly validate a connected server
e64d28c
      (when host key verification is enabled) while subjected to a
e64d28c
      man-in-the-middle attack. This impacts more users than the server-side
e64d28c
      version, but also carries higher requirements for the attacker, namely
e64d28c
      successful DNS poisoning or other MITM techniques.
e64d28c
0e5a7c7
* Mon Oct 11 2021 Paul Howarth <paul@city-fan.org> - 2.8.0-1
0e5a7c7
- Update to 2.8.0
0e5a7c7
  - Administrivia overhaul, including but not limited to:
0e5a7c7
    - Migrate CI to CircleCI
0e5a7c7
    - Primary dev branch is now 'main' (renamed)
0e5a7c7
    - Many README edits for clarity, modernization etc.; including a bunch more
0e5a7c7
      (and consistent) status badges and unification with main project site
0e5a7c7
      index
0e5a7c7
    - PyPI page much more fleshed out (long_description is now filled in with
0e5a7c7
      the README; sidebar links expanded; etc.)
0e5a7c7
    - flake8, pytest configs split out of setup.cfg into their own files
0e5a7c7
    - Invoke/invocations (used by maintainers/contributors) upgraded to modern
0e5a7c7
      versions
0e5a7c7
  - Newer server-side key exchange algorithms not intended to use SHA1
0e5a7c7
    (diffie-hellman-group14-sha256, diffie-hellman-group16-sha512) were
0e5a7c7
    incorrectly using SHA1 after all, due to a bug causing them to ignore the
0e5a7c7
    'hash_algo' class attribute; this has been corrected (GH#1452, GH#1882)
0e5a7c7
  - Add a 'prefetch' keyword argument to 'SFTPClient.get'/'SFTPClient.getfo' so
0e5a7c7
    that users who need to skip SFTP prefetching are able to conditionally turn
0e5a7c7
    it off (GH#1846)
0e5a7c7
c29af31
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.2-6
c29af31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
c29af31
13d5017
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.7.2-5
13d5017
- Rebuilt for Python 3.10
13d5017
3ceb430
* Wed Mar  3 2021 Paul Howarth <paul@city-fan.org> - 2.7.2-4
3ceb430
- Drop invoke dependencies as it requires ancient pytest and we can't expect
3ceb430
  it to remain around
3ceb430
5e0f30d
* Tue Mar 02 2021 Dan Radez <dradez@redhat.com> - 2.7.2-3
5e0f30d
- Removing the python-relax dep using upstream patch
5e0f30d
  https://github.com/paramiko/paramiko/pull/1665/
5e0f30d
5552610
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.2-2
5552610
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
5552610
7ee9b39
* Mon Aug 31 2020 Paul Howarth <paul@city-fan.org> - 2.7.2-1
7ee9b39
- Update to 2.7.2
7ee9b39
  - Update our CI to catch issues with sdist generation, installation and
7ee9b39
    testing
7ee9b39
  - Add missing test suite fixtures directory to MANIFEST.in, reinstating the
7ee9b39
    ability to run Paramiko's tests from an sdist tarball (GH#1727)
7ee9b39
  - Remove leading whitespace from OpenSSH RSA test suite static key fixture,
7ee9b39
    to conform better to spec. (GH#1722)
7ee9b39
  - Fix incorrect string formatting causing unhelpful error message annotation
7ee9b39
    when using Kerberos/GSSAPI
7ee9b39
  - Fix incorrectly swapped order of 'p' and 'q' numbers when loading
7ee9b39
    OpenSSH-format RSA private keys; at minimum this should address a slowdown
7ee9b39
    when using such keys, and it also means Paramiko works with Cryptography
7ee9b39
    3.1 and above, which complains strenuously when this problem appears
7ee9b39
    (GH#1723)
7ee9b39
890bc31
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-5
890bc31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
890bc31
06735e8
* Sat May 30 2020 Paul Howarth <paul@city-fan.org> - 2.7.1-4
06735e8
- Avoid FTBFS with pytest 5 (pytest-relaxed pulls in pytest 4)
06735e8
- Drop explicit dependencies for things that the python dependency generator
06735e8
  finds by itself
06735e8
d877365
* Sun May 24 2020 Miro Hrončok <mhroncok@redhat.com> - 2.7.1-3
d877365
- Rebuilt for Python 3.9
d877365
6c5004b
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-2
6c5004b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
6c5004b
6c753b9
* Wed Dec 11 2019 Paul Howarth <paul@city-fan.org> - 2.7.1-1
6c753b9
- Update to 2.7.1
6c753b9
  - The new-style private key format (added in 2.7.0) suffered from an
6c753b9
    unpadding bug that had been fixed earlier for Ed25519 (as that key type has
6c753b9
    always used the newer format); that fix has been refactored and applied to
6c753b9
    the base key class (GH#1567)
6c753b9
  - Fix a bug in support for ECDSA keys under the newly-supported OpenSSH key
6c753b9
    format (GH#1565, GH#1566)
6c753b9
8fcc17a
* Wed Dec  4 2019 Paul Howarth <paul@city-fan.org> - 2.7.0-1
8fcc17a
- Update to 2.7.0
8fcc17a
  - Implement support for OpenSSH 6.5-style private key files (typically
8fcc17a
    denoted as having 'BEGIN OPENSSH PRIVATE KEY' headers instead of PEM
8fcc17a
    format's 'BEGIN RSA PRIVATE KEY' or similar); if you were getting any sort
8fcc17a
    of weird auth error from "modern" keys generated on newer operating system
8fcc17a
    releases (such as macOS Mojave), this is the first update to try (GH#602,
8fcc17a
    GH#618, GH#1313, GH#1343)
8fcc17a
  - Token expansion in 'ssh_config' used a different method of determining the
8fcc17a
    local username ('$USER' environment variable), compared to what the (much
8fcc17a
    older) client connection code does ('getpass.getuser', which includes
8fcc17a
    '$USER' but may check other variables first, and is generally much more
8fcc17a
    comprehensive); both modules now use 'getpass.getuser'
8fcc17a
  - A couple of outright '~paramiko.config.SSHConfig' parse errors were
8fcc17a
    previously represented as vanilla 'Exception' instances; as part of recent
8fcc17a
    feature work a more specific exception class,
8fcc17a
    '~paramiko.ssh_exception.ConfigParseError', has been created; it is now
8fcc17a
    also used in those older spots, which is naturally backwards compatible
8fcc17a
  - Implement support for the 'Match' keyword in 'ssh_config' files;
8fcc17a
    previously, this keyword was simply ignored and keywords inside such blocks
8fcc17a
    were treated as if they were part of the previous block (GH#717)
8fcc17a
    - Note: this feature adds a new optional install dependency 'Invoke'
8fcc17a
      (https://www.pyinvoke.org), for managing 'Match exec' subprocesses
8fcc17a
  - Additional installation 'extras_require' "flavors" ('ed25519', 'invoke',
8fcc17a
    and 'all') have been added to our packaging metadata
8fcc17a
  - Paramiko's use of 'subprocess' for 'ProxyCommand' support is conditionally
8fcc17a
    imported to prevent issues on limited interpreter platforms like Google
8fcc17a
    Compute Engine; however, any resulting 'ImportError' was lost instead of
8fcc17a
    preserved for raising (in the rare cases where a user tried leveraging
8fcc17a
    'ProxyCommand' in such an environment); this has been fixed
8fcc17a
  - Perform deduplication of 'IdentityFile' contents during 'ssh_config'
8fcc17a
    parsing; previously, if your config would result in the same value being
8fcc17a
    encountered more than once, 'IdentityFile' would contain that many copies
8fcc17a
    of the same string
8fcc17a
  - Implement most 'canonical hostname' 'ssh_config' functionality
8fcc17a
    ('CanonicalizeHostname', 'CanonicalDomains', 'CanonicalizeFallbackLocal',
8fcc17a
    and 'CanonicalizeMaxDots'; 'CanonicalizePermittedCNAMEs' has *not* yet
8fcc17a
    been implemented) - all were previously silently ignored (GH#897)
8fcc17a
  - Explicitly document which ssh_config features we currently support;
8fcc17a
    previously users just had to guess, which is simply no good
8fcc17a
  - Add new convenience classmethod constructors to
8fcc17a
    '~paramiko.config.SSHConfig': '~paramiko.config.SSHConfig.from_text',
8fcc17a
    '~paramiko.config.SSHConfig.from_file', and
8fcc17a
    '~paramiko.config.SSHConfig.from_path'; no more annoying two-step process!
8fcc17a
- Add Recommends: of python3-invoke and python3-pyasn1 for optional
8fcc17a
  functionality
8fcc17a
9321170
* Sun Oct 06 2019 Othman Madjoudj <athmane@fedoraproject.org> - 2.6.0-5
9321170
- Drop python2 subpackage since it's eol-ed
9321170
f8d386b
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.6.0-4
f8d386b
- Rebuilt for Python 3.8.0rc1 (#1748018)
f8d386b
9909c71
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.6.0-3
9909c71
- Rebuilt for Python 3.8
9909c71
8ceea05
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.0-2
8ceea05
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
8ceea05
122807e
* Thu Jun 27 2019 Paul Howarth <paul@city-fan.org> - 2.6.0-1
122807e
- Update to 2.6.0
122807e
  - Add a new keyword argument to 'SSHClient.connect' and
122807e
    '~paramiko.transport.Transport', 'disabled_algorithms', which allows
122807e
    selectively disabling one or more kex/key/cipher/etc algorithms; this can
122807e
    be useful when disabling algorithms your target server (or client) does not
122807e
    support cleanly, or to work around unpatched bugs in Paramiko's own
122807e
    implementation thereof (GH#1463)
122807e
  - Tweak many exception classes so their string representations are more
122807e
    human-friendly; this also includes incidental changes to some 'super()'
122807e
    calls (GH#1440, GH#1460)
122807e
  - Add backwards-compatible support for the 'gssapi' GSSAPI library, as the
122807e
    previous backend ('python-gssapi') has become defunct (GH#584, GH#1166,
122807e
    GH#1311)
122807e
  - 'SSHClient.exec_command' now returns a new subclass,
122807e
    '~paramiko.channel.ChannelStdinFile', rather than a naïve
122807e
    '~paramiko.channel.ChannelFile' object for its 'stdin' value, which fixes
122807e
    issues such as hangs when running remote commands that read from stdin
122807e
    (GH#322)
122807e
- Drop gssapi patch as it's no longer needed
122807e
- Drop pytest-relaxed patch as it's no longer needed
122807e
e0c26d4
* Thu Jun 27 2019 Paul Howarth <paul@city-fan.org> - 2.5.1-1
e0c26d4
- Update to 2.5.1
e0c26d4
  - Fix Ed25519 key handling so certain key comment lengths don't cause
e0c26d4
    'SSHException("Invalid key")' (GH#1306, GH#1400)
e0c26d4
62a9dc1
* Mon Jun 10 2019 Paul Howarth <paul@city-fan.org> - 2.5.0-1
62a9dc1
- Update to 2.5.0
62a9dc1
  - Add support for encrypt-then-MAC (ETM) schemes and two newer Diffie-Hellman
62a9dc1
    group key exchange algorithms ('group14', using SHA256; and 'group16',
62a9dc1
    using SHA512)
62a9dc1
  - Add support for Curve25519 key exchange
62a9dc1
  - Raise Cryptography dependency requirement to version 2.5 (from 1.5) and
62a9dc1
    update some deprecated uses of its API
62a9dc1
  - Add support for the modern (as of Python 3.3) import location of
62a9dc1
    'MutableMapping' (used in host key management) to avoid the old location
62a9dc1
    becoming deprecated in Python 3.8
62a9dc1
- Drop hard dependency on pyasn1 as it's only needed for optional GSSAPI
62a9dc1
  functionality
62a9dc1
f64c330
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.2-2
f64c330
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
f64c330
fdb44cc
* Tue Oct  9 2018 Paul Howarth <paul@city-fan.org> - 2.4.2-1
fdb44cc
- Update to 2.4.2
fdb44cc
  - Fix exploit (GH#1283, CVE-2018-1000805) in Paramiko’s server mode (not
fdb44cc
    client mode) where hostile clients could trick the server into thinking
fdb44cc
    they were authenticated without actually submitting valid authentication
fdb44cc
  - Modify protocol message handling such that Transport does not respond to
fdb44cc
    MSG_UNIMPLEMENTED with its own MSG_UNIMPLEMENTED; this behavior probably
fdb44cc
    didn’t cause any outright errors, but it doesn’t seem to conform to the
fdb44cc
    RFCs and could cause (non-infinite) feedback loops in some scenarios
fdb44cc
    (usually those involving Paramiko on both ends)
fdb44cc
  - Add *.pub files to the MANIFEST so distributed source packages contain
fdb44cc
    some necessary test assets (GH#1262)
fdb44cc
- Test suite now requires mock ≥ 2.0.0
fdb44cc
ca6a013
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.1-5
ca6a013
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
ca6a013
012464e
* Wed Jun 20 2018 Miro Hrončok <mhroncok@redhat.com> - 2.4.1-4
012464e
- Rebuilt for Python 3.7
51a4995
- Remove dependency on on pytest-relaxed
5c143a1
25446ec
* Fri Mar 16 2018 Paul Howarth <paul@city-fan.org> - 2.4.1-1
25446ec
- Update to 2.4.1
25446ec
  - Fix a security flaw (GH#1175, CVE-2018-7750) in Paramiko's server mode
25446ec
    (this does not impact client use) where authentication status was not
25446ec
    checked before processing channel-open and other requests typically only
25446ec
    sent after authenticating
25446ec
  - Ed25519 auth key decryption raised an unexpected exception when given a
25446ec
    unicode password string (typical in python 3) (GH#1039)
25446ec
97907d8
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-3
97907d8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
97907d8
0ac9508
* Sat Nov 18 2017 Athmane Madjoudj <athmane@fedoraproject.org> - 2.4.0-2
0ac9508
- Add gssapi patch back since 2.4.0 still not compatible
25446ec
- Add missing BR (lost during merge)
0ac9508
0003df3
* Fri Nov 17 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.4.0-1
0003df3
- Update to 2.4.0
0003df3
9891276
* Wed Nov 15 2017 Athmane Madjoudj <athmane@fedoraproject.org> - 2.4.0-1
9891276
- Update to 2.4.0 (rhbz #1513208)
1c1d6a4
- Revamp check section
9891276
ef7ce9b
* Sun Oct 29 2017 Athmane Madjoudj <athmane@fedoraproject.org> - 2.3.1-3
ef7ce9b
- Add a patch to disable gssapi on unsupported version (rhbz #1507174)
ef7ce9b
38e3e44
* Tue Sep 26 2017 Athmane Madjoudj <athmane@fedoraproject.org> - 2.3.1-2
38e3e44
- Remove weak deps, paramiko does not support recent gssapi (rhbz #1496148)
38e3e44
7a59696
* Sat Sep 23 2017 Athmane Madjoudj <athmane@fedoraproject.org> - 2.3.1-1
7a59696
- Update to 2.3.1 (rhbz #1494764)
7a59696
70b21bc
* Wed Sep 20 2017 Paul Howarth <paul@city-fan.org> - 2.3.0-1
70b21bc
- 2.3.0.
70b21bc
adbe34d
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.1-2
adbe34d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
adbe34d
78d73e1
* Wed Jun 14 2017 Paul Howarth <paul@city-fan.org> - 2.2.1-1
78d73e1
- 2.2.1.
78d73e1
6c6f493
* Sun Jun 11 2017 Paul Howarth <paul@city-fan.org> - 2.2.0-1
6c6f493
- 2.2.0.
6c6f493
5e3fac0
* Wed Feb 22 2017 Paul Howarth <paul@city-fan.org> - 2.1.2-1
5e3fac0
- 2.1.2.
5e3fac0
ca724c7
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-3
ca724c7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
ca724c7
bd75c13
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2.1.1-2
bd75c13
- Rebuild for Python 3.6
bd75c13
d4a1349
* Fri Dec 16 2016 Jon Ciesla <limburgher@gmail.com> - 2.1.1-1
d4a1349
- 2.1.1.
d4a1349
b3ebad8
* Fri Dec 09 2016 Jon Ciesla <limburgher@gmail.com> - 2.1.0-1
b3ebad8
- 2.1.0.
b3ebad8
9687901
* Fri Dec 09 2016 Jon Ciesla <limburgher@gmail.com> - 2.0.2-1
9687901
- 2.0.2.
9687901
86a91f8
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0-2
86a91f8
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
86a91f8
Igor Gnatenko 8879174
* Fri Apr 29 2016 Igor Gnatenko <ignatenko@redhat.com> - 2.0.0-1
Igor Gnatenko 8879174
- Update to 2.0.0 (RHBZ #1331737)
Igor Gnatenko 8879174
8b748cf
* Sun Mar 27 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 1.16.0-1
8b748cf
- Update to 1.16.0
8b748cf
- Adopt to new packaging guidelines
8b748cf
c8d72d5
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.15.2-5
c8d72d5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
c8d72d5
c4e384c
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.15.2-4
c4e384c
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
c4e384c
e7e4175
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.15.2-3
e7e4175
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
e7e4175
7e558fe
* Sun Mar 22 2015 Peter Robinson <pbrobinson@fedoraproject.org> 1.15.2-2
7e558fe
- Use %%license
7e558fe
- Move duplicated docs to single doc sub package
7e558fe
- Remove old F-15 conditionals
7e558fe
69601fe
* Tue Dec 23 2014 Athmane Madjoudj <athmane@fedoraproject.org> 1.15.2-1
69601fe
- Update to 1.15.2
69601fe
3f290d2
* Mon Nov 24 2014 Athmane Madjoudj <athmane@fedoraproject.org> 1.15.1-5
3f290d2
- Add conditional to exclude EL since does not have py3
3f290d2
1dd8751
* Sat Nov 15 2014 Athmane Madjoudj <athmane@fedoraproject.org> 1.15.1-4
1dd8751
- py3dir creation should be in prep section
1dd8751
c6761c3
* Fri Nov 14 2014 Athmane Madjoudj <athmane@fedoraproject.org> 1.15.1-3
c6761c3
- Build each pkg in a clean dir
c6761c3
7f11329
* Fri Nov 14 2014 Athmane Madjoudj <athmane@fedoraproject.org> 1.15.1-2
7f11329
- Add support for python3
7f11329
- Add BR -devel for python macros.
7f11329
bdf2dca
* Fri Oct 17 2014 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.15.1-1
bdf2dca
- Update to 1.15.1
bdf2dca
9b09e72
* Fri Jun 13 2014 Orion Poplawski <orion@cora.nwra.com> - 1.12.4-1
9b09e72
- Update to 1.12.4
9b09e72
6ba6328
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.12.2-2
6ba6328
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
6ba6328
0341bf5
* Tue Feb 25 2014 Orion Poplawski <orion@cora.nwra.com> - 1.12.2-1
0341bf5
- Update to 1.12.2
0341bf5
52283d3
* Wed Jan 22 2014 Orion Poplawski <orion@cora.nwra.com> - 1.11.3-1
52283d3
- Update to 1.11.3
52283d3
8a99947
* Mon Oct 21 2013 Orion Poplawski <orion@cora.nwra.com> - 1.11.0-1
8a99947
- Update to 1.11.0
8a99947
729b740
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10.1-2
729b740
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
729b740
e2582f7
* Thu May  9 2013 Jeffrey Ollie <jeff@ocjtech.us> - 1.10.1-1
e2582f7
- Update to 1.10.1
e2582f7
916589b
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.0-2
916589b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
916589b
1327efb
* Wed Jan  2 2013 Jeffrey Ollie <jeff@ocjtech.us> - 1.9.0-1
1327efb
- Update to 1.9.0
1327efb
7288f20
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.7.1-3
7288f20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
7288f20
e807a94
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.7.1-2
e807a94
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
e807a94
e51d373
* Wed Jul  6 2011 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.7.1-1
e51d373
- v1.7.7.1 (George) 21may11
e51d373
- -------------------------
e51d373
-   * Make the verification phase of SFTP.put optional (Larry Wright)
e51d373
-   * Patches to fix AIX support (anonymous)
e51d373
-   * Patch from Michele Bertoldi to allow compression to be turned on in the
e51d373
-     client constructor.
e51d373
-   * Patch from Shad Sharma to raise an exception if the transport isn't active
e51d373
-     when you try to open a new channel.
e51d373
-   * Stop leaking file descriptors in the SSH agent (John Adams)
e51d373
-   * More fixes for Windows address family support (Andrew Bennetts)
e51d373
-   * Use Crypto.Random rather than Crypto.Util.RandomPool
e51d373
-     (Gary van der Merwe, #271791)
e51d373
-   * Support for openssl keys (tehfink)
e51d373
-   * Fix multi-process support by calling Random.atfork (sugarc0de)
e51d373
25ae2e3
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.6-4
25ae2e3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
25ae2e3
75c8171
* Tue Jan 4 2011 Toshio Kuratomi <toshio@fedoraproject.org> - 1.7.6-3
75c8171
- Patch to address deprecation warning from pycrypto
75c8171
- Simplify build as shown in new python guidelines
75c8171
- Enable test suite
75c8171
e189ea2
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 1.7.6-2
e189ea2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
e189ea2
924db7f
* Mon Nov  2 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.6-1
924db7f
- v1.7.6 (Fanny) 1nov09
924db7f
- ---------------------
924db7f
-  * fixed bugs 411099 (sftp chdir isn't unicode-safe), 363163 & 411910 (more
924db7f
-    IPv6 problems on windows), 413850 (race when server closes the channel),
924db7f
-    426925 (support port numbers in host keys)
924db7f
10225f4
* Tue Oct 13 2009 Jeremy Katz <katzj@fedoraproject.org> - 1.7.5-2
10225f4
- Fix race condition (#526341)
10225f4
9b69d81
* Thu Jul 23 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.5-1
9b69d81
- v1.7.5 (Ernest) 19jul09
9b69d81
- -----------------------
9b69d81
-  * added support for ARC4 cipher and CTR block chaining (Denis Bernard)
9b69d81
-  * made transport threads daemonize, to fix python 2.6 atexit behavior
9b69d81
-  * support unicode hostnames, and IP6 addresses (Maxime Ripard, Shikhar
9b69d81
-    Bhushan)
9b69d81
-  * various small bug fixes
9b69d81
7f9e09d
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.4-5
7f9e09d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
7f9e09d
8a1e89e
* Mon Feb 16 2009 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.4-4
8a1e89e
- Add demos as documentation. BZ#485742
8a1e89e
0450af6
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 1.7.4-3
0450af6
- Rebuild for Python 2.6
0450af6
e5e8e78
* Wed Sep  3 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 1.7.4-2
e5e8e78
- fix license tag
e5e8e78
5bdb7a1
* Sun Jul  6 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.4-1
5bdb7a1
- Update to 1.7.4
5bdb7a1
008c83e
* Mon Mar 24 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.3-1
008c83e
- Update to 1.7.3.
008c83e
d6067ba
* Tue Jan 22 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.2-1
d6067ba
- Update to 1.7.2.
d6067ba
- Remove upstreamed patch.
d6067ba
739aeb2
* Mon Jan 14 2008 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.1-3
739aeb2
- Update to latest Python packaging guidelines.
739aeb2
- Apply patch that fixes insecure use of RandomPool.
739aeb2
f175887
* Thu Jul 19 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.1-2
f175887
- Bump rev
f175887
3a49ea4
* Thu Jul 19 2007 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.7.1-1
3a49ea4
- Update to 1.7.1
3a49ea4
81f93b6
* Sat Dec 09 2006 Toshio Kuratomi <toshio@tiki-lounge.com> - 1.6.4-1
81f93b6
- Update to 1.6.4
81f93b6
- Upstream is now shipping tarballs
81f93b6
- Bump for python 2.5 in devel
81f93b6
aad5769
* Mon Oct  9 2006 Jeffrey C. Ollie <jeff@ocjtech.us> - 1.6.2-1
aad5769
- Update to 1.6.2
aad5769
Shahms King 83493dd
* Sat Sep 16 2006 Shahms E. King <shahms@shahms.com> 1.6.1-3
Shahms King 83493dd
- Rebuild for FC6
Shahms King 83493dd
Shahms King 2dad15e
* Fri Aug 11 2006 Shahms E. King <shahms@shahms.com> 1.6.1-2
Shahms King 2dad15e
- Include, don't ghost .pyo files per new guidelines
Shahms King 2dad15e
Shahms King 731de2e
* Tue Aug 08 2006 Shahms E. King <shahms@shahms.com> 1.6.1-1
Shahms King 731de2e
- Update to new upstream version
Shahms King 731de2e
Shahms King 8c334ed
* Fri Jun 02 2006 Shahms E. King <shahms@shahms.com> 1.6-1
Shahms King 8c334ed
- Update to new upstream version
Shahms King 8c334ed
- ghost the .pyo files
Shahms King 8c334ed
Shahms King 3dc819c
* Fri May 05 2006 Shahms E. King <shahms@shahms.com> 1.5.4-2
Shahms King 3dc819c
- Fix source line and rebuild
Shahms King 3dc819c
Shahms King 5ac2fb1
* Fri May 05 2006 Shahms E. King <shahms@shahms.com> 1.5.4-1
Shahms King 5ac2fb1
- Update to new upstream version
Shahms King 5ac2fb1
Shahms King 6de5a2d
* Wed Apr 12 2006 Shahms E. King <shahms@shahms.com> 1.5.3-1
Shahms King 6de5a2d
  - Initial package