view contrib/debian/control @ 29559:7dec5e441bf7

sslutil: config option to specify TLS protocol version Currently, Mercurial will use TLS 1.0 or newer when connecting to remote servers, selecting the highest TLS version supported by both peers. On older Pythons, only TLS 1.0 is available. On newer Pythons, TLS 1.1 and 1.2 should be available. Security-minded people may want to not take any risks running TLS 1.0 (or even TLS 1.1). This patch gives those people a config option to explicitly control which TLS versions Mercurial should use. By providing this option, one can require newer TLS versions before they are formally deprecated by Mercurial/Python/OpenSSL/etc and lower their security exposure. This option also provides an easy mechanism to change protocol policies in Mercurial. If there is a 0-day and TLS 1.0 is completely broken, we can act quickly without changing much code. Because setting the minimum TLS protocol is something you'll likely want to do globally, this patch introduces a global config option under [hostsecurity] for that purpose. wrapserversocket() has been taught a hidden config option to define the explicit protocol to use. This is queried in this function and not passed as an argument because I don't want to expose this dangerous option as part of the Python API. There is a risk someone could footgun themselves. But the config option is a devel option, has a warning comment, and I doubt most people are using `hg serve` to run a production HTTPS server (I would have something not Mercurial/Python handle TLS). If this is problematic, we can go back to using a custom extension in tests to coerce the server into bad behavior.
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 14 Jul 2016 20:47:22 -0700
parents 5573b0f8dc28
children dc22729b4ebd
line wrap: on
line source

Source: mercurial
Section: vcs
Priority: optional
Maintainer: Mercurial Developers <mercurial-devel@selenic.com>
Build-Depends:
 debhelper (>= 9),
 dh-python,
 netbase,
 python-all,
 python-all-dev,
 python-docutils,
 unzip,
 zip
Standards-Version: 3.9.4
X-Python-Version: >= 2.6

Package: mercurial
Depends:
 python,
 ${shlibs:Depends},
 ${misc:Depends},
 ${python:Depends},
 mercurial-common (= ${source:Version})
Architecture: any
Description: fast, easy to use, distributed revision control tool.
 Mercurial is a fast, lightweight Source Control Management system designed
 for efficient handling of very large distributed projects.
 .
 Its features include:
  * O(1) delta-compressed file storage and retrieval scheme
  * Complete cross-indexing of files and changesets for efficient exploration
    of project history
  * Robust SHA1-based integrity checking and append-only storage model
  * Decentralized development model with arbitrary merging between trees
  * Easy-to-use command-line interface
  * Integrated stand-alone web interface
  * Small Python codebase

Package: mercurial-common
Architecture: all
Depends:
 ${misc:Depends},
 ${python:Depends},
Recommends: mercurial (= ${source:Version}), ca-certificates
Suggests: wish
Breaks: mercurial (<< ${source:Version})
Replaces: mercurial (<< 2.6.3)
Description: easy-to-use, scalable distributed version control system (common files)
 Mercurial is a fast, lightweight Source Control Management system designed
 for efficient handling of very large distributed projects.
 .
 This package contains the architecture independent components of Mercurial,
 and is generally useless without the mercurial package.