---
name: "oath_hotp_validate"
section: "3"
platform: "linux"
package: "oath-toolkit"
version: "2.6.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/oath_hotp_validate"
---

# oath\_hotp\_validate(3)

API function

## NAME

oath\_hotp\_validate - API function

## SYNOPSIS

**#include \<oath.h\>**

**int oath\_hotp\_validate(const char \*** *secret***, size\_t** *secret\_length***, uint64\_t** *start\_moving\_factor***, size\_t** *window***, const char \*** *otp***);**

## ARGUMENTS

- const char \* secret

  the shared secret string

- size\_t secret\_length

  length of *secret*

- uint64\_t start\_moving\_factor

  start counter in OTP stream

- size\_t window

  how many OTPs after start counter to test

- const char \* otp

  the OTP to validate.

## DESCRIPTION

Validate an OTP according to OATH HOTP algorithm per RFC 4226.

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

## RETURNS

Returns position in OTP window (zero is first position), or **OATH\_INVALID\_OTP** if no OTP was found in OTP window, or an error code.

## REPORTING BUGS

Report bugs to \<oath-toolkit-help@nongnu.org\>. liboath home page: https://oath-toolkit.codeberg.page/ General help using GNU software: http://www.gnu.org/gethelp/

## COPYRIGHT

Copyright © 2009-2026 Simon Josefsson.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.
