Add crc32 support

It is not ready to merge. Just creating a pull request to ask for review. I will add the test case later .