In RFC 4226, the algorithm for HOTP is described as follows:
HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
TOTP is essentially the same algorithm as HOTP except for the fact that the counter "C" is replaced by an integer derived from the current time (in Unix Time). In the words of RFC 6238,
Basically, we define TOTP as TOTP = HOTP(K, T), where T is an integer and represents the number of time steps between the initial counter time T0 and the current Unix time.
However, the reference code described in RFC 6238 as well as the test values listed in Appendix B has reference to HMAC-SHA256
and HMAC-SHA512
. The two algorithms are not mentioned anywhere else in either RFC 4226 or RFC 6238 though.
My question - Are HMAC-SHA256
and HMAC-SHA512
officially supported as variants of the HOTP and TOTP algorithms?