Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since the quicklisp release contains the md5 and length of files, I figured we might as well check it when downloading. In the same spirit of
ql-https
just shelling out to curl, I just shell out tomd5sum
which is present on 99.9% of unix boxes.If md5 was secure it would add significant security. Rather than getting a certificate authority to issue a false certificate or temporarily compromising the quicklisp server and backdooring some package, an attacker would have to also edit the dist to match their new hash and maintain the compromise unnoticed for months until you download the new dist and update some package. Unfortunately md5 is not secure and it's possible to make collisions with the same length, but it at least makes it a little harder for an attacker, and if quicklisp ever changes to use sha256sum or something then it will be trivial to change here and actually provide significant extra security. The quicklisp dist also contains a sha1 which would be better than md5, but that is generated by git which uses the time and author of the commit among other information we don't have in the simple release .tgz, so I don't think we can check it.