The hash API basically works looks like this
class CRC
{
string name();
int digest_size();
int block_size();
CRCState `()
string hash(string data);
}
class CRCState
{
string name();
int digest_size();
int block_size();
string hash(string data);
CRCState update(string data);
string digest(void|int length);
}
