Updated to use mmap. For whatever reason, passing SHA1_update the
result of mmap directly causes crashes. A region of temporarily allocated
memory is memcpy'd to before calling SHA1_update