Now uses SPDX headers everywhere.
Zlib's crc32 outputs signed values in python2 and unsigned values in python3. As per this page (https://docs.python.org/2/library/zlib.html) 0xffffffff can be AND'd to the result to get the same value between Python versions