There are a couple of ways to interact with the hash framework. The following example is probably the most common:
_LIT(messagePart1, "Hello "); _LIT(messagePart2, "My "); _LIT(messagePart3, "Name "); _LIT(messagePart4, "is Fred"); TBuf8<20> hash; CSHA1* sha1 = CSHA1::NewL(); sha1->Update(messagePart1); sha1->Update(messagePart2); sha1->Update(messagePart3); hash.Copy(sha1->Final(messagePart4));
Note that Final() has a version that takes no data parameter which may be useful in certain situations.
A few pointers:
You can reuse a hash object by calling Reset().
Both versions of Final() call Reset() at the end of their function automatically.
Be aware that the returned TPtrC8 from Final() points to an internal buffer. Calling Update() or Final() again changes the contents of this buffer and will destroy your previously computed hash. As in the example above, make sure you copy the data out if you need it.