user: add HOTP framework