class TimeBasedOneTimePassword extends HOTP {
/**
*
- * @param {Object} options
- * @param {Number} options.codeLength
- * @param {Buffer|String} options.key
- * @param {String} options.keyEncoding
- * @param {String} options.algorithm
- * @param {Number} options.timeStepSeconds
- * @param {Number} options.timeStepStartSeconds
- * @param {Number} options.driftForward
- * @param {Number} options.driftBackward
+ * @param {object} options options
+ * @param {number} options.codeLength digits in code
+ * @param {Buffer|string} options.key secret key
+ * @param {string} options.keyEncoding secret key encoding
+ * @param {string} options.algorithm algorithm
+ * @param {number} options.timeStepSeconds seconds per increment
+ * @param {number} options.timeStepStartSeconds seconds offset
+ * @param {number} options.driftForward allowed future steps to check
+ * @param {number} options.driftBackward allowed past steps to check
*/
constructor(options) {
const _options = { ...options };
/**
* The type used when constructing the otpauth URI.
+ * @returns {string} otp auth type
*/
static get _type() {
return 'totp';
/**
* Derive counter from epoch.
+ * @returns {bigint} time based counter
*/
get counter() {
const epoch = Math.floor(Date.now() / 1000);
/**
*
- * @param {BigInt=} count
- * @returns {String}
+ * @param {bigint=} count counter value
+ * @returns {string} code
*/
generate(count = this.counter) {
return super.generate(count);
/**
*
- * @param {String} hotp
- * @param {BigInt=} count
- * @returns {Boolean}
+ * @param {string} hotp code
+ * @param {bigint=} count counter value
+ * @returns {boolean} is valid
*/
validate(hotp, count) {
const counter = count ?? this.counter;