/* See LICENSE for licensing and NOTICE for copyright. */
package org.cryptacular.generator;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SHA1Digest;
/**
* OTP generator component that implements the HOTP scheme described in <a href="https://tools.ietf.org/html/rfc4226">
* RFC 4226</a>.
*
* @author Middleware Services
*/
public class HOTPGenerator extends AbstractOTPGenerator
{
/**
* Generates the OTP given a per-user key and invocation count.
*
* @param key Per-user key.
* @param count Counter moving factor.
*
* @return Integer OTP.
*/
public int generate(final byte[] key, final long count)
{
return generateInternal(key, count);
}
@Override
protected Digest getDigest()
{
return new SHA1Digest();
}
}