On 12/10/19 6:50 AM, Adam Gross via Scons-dev wrote:
The random python comparisons I have seen online with python 3 is that SHA-1 is faster than MD5. With python 2 I don’t think that was the case. Remote caching wouldn’t come earlier than 4.0, so it’s reasonable to assume py3 anyway.

I am not sure about SHA-256.

256 is a bit slower. Here are some random relative timings from a Linux host, excluding the sha3* family (which are all slower):

==== md5        [4.895055413013324, 4.794695725897327, 4.788602610118687]
==== sha1       [4.8523716980125755, 4.790286544011906, 4.779321678215638]
==== sha256     [5.980340243084356, 6.025372178060934, 5.983012914890423]
==== sha512     [7.033806097926572, 7.030697694979608, 7.019461386138573]
==== blake2b_20 [4.735298512969166, 4.768527464941144, 4.754039308987558]
==== blake2b    [4.883447706932202, 4.856357607059181, 4.866529860068113]
==== blake2s_20 [4.393687708070502, 4.392260011984035, 4.4033572028856725]
==== blake2s    [4.266355097061023, 4.233708509942517, 4.228863182011992]
==== sha224     [5.833340571029112, 5.849389663897455, 5.8033752529881895]
==== sha384     [6.833396520931274, 6.844970899866894, 6.844409989891574]


On a Windows host the timings fall into roughly the same ranking, although blake2s wins by more over md5/sha1 (it's more like 40% faster than 12% faster)

This isn't particularly important, I'm just following up.

It just seems odd to me to add md5 support anywhere that doesn't have it, when you usually get flamed by someone when you mention md5 these days :)



>> Also there needs to be a reasonable solution to (de)serializing which hash is used to sconsign.

Doing it based on length would be fine. The Bazel remote cache change we are going to upstream (adding support for MD5 and SHA-1) does that because the maintainer preferred its simplicity.

*From:* Scons-dev <scons-dev-boun...@scons.org> *On Behalf Of *Bill Deegan
*Sent:* Monday, December 9, 2019 6:51 PM
*To:* SCons developer list <scons-dev@scons.org>
*Subject:* Re: [Scons-dev] RFC: Proposal for remote caching

re switching hashes.

Do we have any perf comparisons for MD5 vs SHA-256 in general and in SCons?

While I think adding SHA-256 has value, I'd be hesitant to make it the default and/or remove MD5.

Also there needs to be a reasonable solution to (de)serializing which hash is used to sconsign.

On Mon, Dec 9, 2019 at 1:34 PM Mats Wichmann <m...@wichmann.us <mailto:m...@wichmann.us>> wrote:


     > 2.1.3 Changes Needed To Bazel Remote Cache Server
     >
     > Currently the Bazel remote cache server only supports SHA-256 for
    requests (e.g. GET http://bazel-cache.corp.int/cache/ac/
    
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbazel-cache.corp.int%2Fcache%2Fac%2F&data=02%7C01%7Cgrossag%40vmware.com%7C0f3e205b7aae4d9514a208d77d02bdb4%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637115323036911396&sdata=bUEJneQzYW8VcTrfN4s9uWCawwRWp%2B%2FixwrZOuPSsag%3D&reserved=0><sha_256_hash>),
    while SCons by default uses MD5. As part of this project, VMware
    will be contributing code to the upstream Bazel remote cache server
    project to support MD5 and SHA-1. We have received confirmation from
    the project maintainer that (1) it is acceptable to do this and (2)
    no prefix is needed for these alternative hashing formats. As a
    result, the requests SCons would make would be of the form
    http://bazel-cache.corp.int/cache/ac/
    
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbazel-cache.corp.int%2Fcache%2Fac%2F&data=02%7C01%7Cgrossag%40vmware.com%7C0f3e205b7aae4d9514a208d77d02bdb4%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637115323036911396&sdata=bUEJneQzYW8VcTrfN4s9uWCawwRWp%2B%2FixwrZOuPSsag%3D&reserved=0><md5_hash>
    or http://bazel-cache.corp.int/cache/ac/
    
<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbazel-cache.corp.int%2Fcache%2Fac%2F&data=02%7C01%7Cgrossag%40vmware.com%7C0f3e205b7aae4d9514a208d77d02bdb4%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637115323036921389&sdata=jIg1xouKCbwfFxKG4eOatqg4sjWmsj0RBvVX0w1XqgA%3D&reserved=0><sha1_hash>.
    As mentioned before, see the Threat Modeling section at the end of
    this page for more discussion on hash formats.

    I'm not sure we should actually further push md5.  While it's not
    intended to be used for security purposes (and yes I read the
    section on
    that), we've already run into users who are not allowed to use it no
    matter what (there's a pending patch to failover to sha1 to address one
    of those users' concerns)... and there are fast algorithms in the SHA-2
    family as well as ones that didn't quite make the SHA-3 choice (namely,
    Blake) which are quite fast on Python.  It may be time to transition?

    _______________________________________________
    Scons-dev mailing list
    Scons-dev@scons.org <mailto:Scons-dev@scons.org>
    https://pairlist2.pair.net/mailman/listinfo/scons-dev
    
<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist2.pair.net%2Fmailman%2Flistinfo%2Fscons-dev&data=02%7C01%7Cgrossag%40vmware.com%7C0f3e205b7aae4d9514a208d77d02bdb4%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637115323036921389&sdata=EKLzHg0N8xYEmvYX%2FtvWfeYpHAyN5mNx3COMD55rO9Y%3D&reserved=0>


_______________________________________________
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev


_______________________________________________
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to