It can use any kind of cryptographic functions , and its strength depends on the underlying function (SHA1 or MD5 for instance), and the chosen secret key. With such a combination, the HMAC verification algorithm is then known with a compound name such as HMAC-SHA1.
HMAC is used to ensure both integrity and authentication.