Digest generation