oath_hotp_generate3
Api function
Usage
#include <oath.h>
int oath_hotp_generate(const char * secret, size_t secret_length, uint64_t moving_factor, unsigned digits, bool add_checksum, size_t truncation_offset, char * output_otp);
Arguments
const char * secret
|
the shared secret string |
|---|---|
size_t secret_length
|
length of secret |
uint64_t moving_factor
|
a counter indicating the current OTP to generate |
unsigned digits
|
number of requested digits in the OTP, excluding checksum |
bool add_checksum
|
whether to add a checksum digit or not |
size_t truncation_offset
|
use a specific truncation offset |
char * output_otp
|
output buffer, must have room for the output OTP plus zero |
Overview
Generate a one-time-password using the HOTP algorithm as described in RFC 4226.
Use a value of OATH_HOTP_DYNAMIC_TRUNCATION for truncation_offset unless you really need a specific truncation offset.
To find out the size of the OTP you may use the OATH_HOTP_LENGTH() macro. The output_otp buffer must be have room for that length plus one for the terminating NUL.
Currently only values 6, 7 and 8 for digits are supported, and the add_checksum value is ignored. These restrictions may be lifted in future versions, although some limitations are inherent in the protocol.
Returns
On success, OATH_OK (zero) is returned, otherwise an error code is returned.
Releases
4 releases since Debian 11 (Bullseye); the text changed 3 times.