Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
oath_totp_validate3_callback(3)	    liboath    oath_totp_validate3_callback(3)

       oath_totp_validate3_callback - API function

       #include	<oath.h>

       int   oath_totp_validate3_callback(const	 char  *  secret,  size_t  se-
       cret_length, time_t now,	unsigned time_step_size, time_t	 start_offset,
       unsigned	 digits, size_t	window,	int * otp_pos, uint64_t	* otp_counter,
       oath_validate_strcmp_function strcmp_otp, void *	strcmp_handle);

       const char * secret
		   the shared secret string

       size_t secret_length
		   length of secret

       time_t now  Unix	time value to compute TOTP for

       unsigned	time_step_size
		   time	step system parameter (typically 30)

       time_t start_offset
		   Unix	time of	when to	start counting time  steps  (typically

       unsigned	digits
		   number of requested digits in the OTP

       size_t window
		   how many OTPs after start counter to	test

       int * otp_pos
		   output search position in search window (may	be NULL).

       uint64_t	* otp_counter
		   counter value used to calculate OTP value (may be NULL).

       oath_validate_strcmp_function strcmp_otp
		   function pointer to a strcmp-like function.

       void * strcmp_handle
		   caller handle to be passed on to strcmp_otp.

       Validate	an OTP according to OATH TOTP algorithm	per RFC	6238.

       Validation  is implemented by generating	a number of potential OTPs and
       performing a call to the	strcmp_otp function, to	compare	the  potential
       OTP against the given otp.  It has the following	prototype:

       int   (*oath_validate_strcmp_function)	(void	*handle,   const  char

       The function should be similar to strcmp	in that	it return  0  only  on
       matches.	  It differs by	permitting use of negative return codes	as in-
       dication	of internal failures in	the callback.  Positive	 values	 indi-
       cate OTP	mismatch.

       This callback interface is useful when you cannot compare OTPs directly
       using normal strcmp, but	instead	for example only have  a  hashed  OTP.
       You  would  then	 typically pass	in the hashed OTP in the strcmp_handle
       and let your implementation of strcmp_otp hash the test_otp  OTP	 using
       the same	hash, and then compare the results.

       Currently only OTP lengths of 6,	7 or 8 digits are supported.  This re-
       strictions may be lifted	in future versions, although some  limitations
       are inherent in the protocol.

       Returns	absolute  value	of position in OTP window (zero	is first posi-
       tion), or OATH_INVALID_OTP if no	OTP was	found in OTP window, or	an er-
       ror code.


       Report  bugs  to	 <>.   liboath  home page: General help using	GNU  software:

       Copyright (C) 2009-2016 Simon Josefsson.
       Copying	and  distribution  of this file, with or without modification,
       are permitted in	any medium without royalty provided the	copyright  no-
       tice and	this notice are	preserved.

liboath				     2.6.2     oath_totp_validate3_callback(3)


Want to link to this manual page? Use this URL:

home | help