Add support for Simple File Verification #6098
Merged
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.
Summary
This pull-request adds support for Simple File Verification (
.sfv
) files, which contain a list of file checksums in CRC-32 format:Description
Unlike the ad-hoc formats added in
#5138
, SFV uses an explicit (albeit poorly-documented) syntax that supports comments and quoted filenames. Some SFV readers are also picky about whitespace and punctuation separating the filename from the checksum. Some even support multiline comment blocks, which are typically intended for those annoying banners that script-kiddies love stuffing into their WaReZ's.NFO
files:These considerations rule out the possibility of using the checksum grammar I wrote for
#5138
, which was designed to handle freeform text broken up by well-formed checksum lists (like readmes, verification instructions, etc).Colour rationale
#C9BFED
was taken from the CRC-32 checksum of the words "Simple File Verification".Checklist:
~5,490 results for the
.sfv
extension (~320 results in Code Search)Finding a permissively-licensed example was next to impossible, so I took to generating samples using
rhash(1)
.I have included a syntax highlighting grammarI have updated the heuristics