<div dir="ltr">+1 thanks for the detail</div><div class="gmail_extra"><br><div class="gmail_quote">On 14 November 2014 13:21, Donald Stufft <span dir="ltr"><<a href="mailto:donald@stufft.io" target="_blank">donald@stufft.io</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Starting a new thread with more explicit details at Richard’s request.<br>
Essentially the tl;dr here is that we'll switch to using sha2 (specifically<br>
sha256).<br>
<br>
<br>
Simple API<br>
----------<br>
<br>
Drop the #md5= from the PyPI hosted tarballs and replace it with #sha256, the<br>
~60 or so externally hosted files which are using #md5 links will be fetched<br>
(one time) verified, and have their #md5= hash replaced with a computed<br>
#sha256= hash.<br>
<br>
Impact:<br>
  - pip: Will work with no issues, pip has supported sha256 since 1.2, and<br>
         < 1.2 will install without a hash just fine.<br>
  - setuptools: Will work with no issues, setuptools has supported sha256 since<br>
                0.9 and < 0.9 will install without a hash just fine.<br>
  - distribute: Doesn't support sha256, will intall without a hash just fine.<br>
  - buildout: Uses setuptools/distribute to do the downloads I believe.<br>
  - z3c.pypimirror: Appears to use MD5 hashes, but appears it won't error out<br>
                    if they do not exist.<br>
<br>
<br>
JSON / XMLRPC API<br>
-----------------<br>
<br>
Keep the md5_sum field, add an additional sha256_sum, suggest that applications<br>
switch to using sha256 for verification.<br>
<br>
Impact:<br>
  - bandersnatch: bandersnatch will continue to use the md5_sum field from the<br>
                  JSON (and previously XMLRPC) and should be updated to using<br>
                  sha256 in the future.<br>
<br>
<br>
Web UI<br>
------<br>
<br>
Simply replace any use of MD5 with SHA256, no clients are expected to access<br>
anything here so this should be perfectly fine.<br>
<br>
<br>
Other Clients<br>
-------------<br>
<br>
  - pep381client: Doesn't do anything special with the hash, will continue to<br>
                  work.<br>
  - devpi: ??? Unsure, I don't follow the code which fetches from PyPI so I<br>
           can't determine where it gets the md5sum from and what it will do if<br>
           it doesn't exist. It does have some handling of md5 though.<br>
<br>
<br>
List of clients to look at taken from <a href="http://d.stufft.io/image/402r1s442m2r" target="_blank">http://d.stufft.io/image/402r1s442m2r</a>,<br>
which is generated by looking at what is downloading the files from PyPI.<br>
<br>
<br>
---<br>
Donald Stufft<br>
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA<br>
<br>
_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/distutils-sig" target="_blank">https://mail.python.org/mailman/listinfo/distutils-sig</a><br>
</blockquote></div><br></div>