forked from github/jsotp
upd: group the classes and export to one
This commit is contained in:
39
src/jsotp.js
39
src/jsotp.js
@@ -5,16 +5,47 @@
|
||||
* @Disc : a node module to generate and verify one-time passwords
|
||||
*/
|
||||
|
||||
import { OTP } from './otp';
|
||||
import { TOTP } from './totp';
|
||||
import { HOTP } from './hotp';
|
||||
import { Base32 } from './base32';
|
||||
import { Util } from './util';
|
||||
|
||||
/**
|
||||
* Generate and return HOTP object
|
||||
*
|
||||
* @param {secret}
|
||||
* @type {String}
|
||||
* @desc random base32-encoded key to generate OTP.
|
||||
*
|
||||
* @return {OTP}
|
||||
*/
|
||||
function hotp_gen(secret, digits=6, digest="SHA-1") {
|
||||
let hotp = new HOTP(secret, digits, digest);
|
||||
return hotp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate and return TOTP object
|
||||
*
|
||||
* @param {secret}
|
||||
* @type {String}
|
||||
* @desc random base32-encoded key to generate OTP.
|
||||
*
|
||||
* @param {interval}
|
||||
* @type {int}
|
||||
* @desc the time interval in seconds for OTP.
|
||||
* This defaults to 30.
|
||||
*
|
||||
* @return {OTP}
|
||||
*/
|
||||
function totp_gen(secret, interval=30) {
|
||||
let totp = new TOTP(secret, interval);
|
||||
return totp;
|
||||
}
|
||||
|
||||
export {
|
||||
OTP,
|
||||
TOTP,
|
||||
HOTP,
|
||||
hotp_gen as HOTP,
|
||||
totp_gen as TOTP,
|
||||
Base32,
|
||||
Util
|
||||
};
|
||||
40
test/jsotp_test.js
Normal file
40
test/jsotp_test.js
Normal file
@@ -0,0 +1,40 @@
|
||||
let jsotp = require("../lib/jsotp");
|
||||
var assert = require('assert');
|
||||
|
||||
describe('jsotp class test', function() {
|
||||
describe('is HOTP module import?', function() {
|
||||
|
||||
let hotp = jsotp.HOTP("J22U6B3WIWRRBTAV");
|
||||
|
||||
it("should return object", function() {
|
||||
assert.equal("object", typeof(hotp))
|
||||
});
|
||||
});
|
||||
|
||||
describe('is TOTP module import?', function() {
|
||||
|
||||
let totp = jsotp.TOTP("J22U6B3WIWRRBTAV");
|
||||
|
||||
it("should return object", function() {
|
||||
assert.equal("object", typeof(totp))
|
||||
});
|
||||
});
|
||||
|
||||
describe('is Base32 module import?', function() {
|
||||
|
||||
let b32_random = jsotp.Base32.random_gen();
|
||||
|
||||
it("should return string", function() {
|
||||
assert.equal("string", typeof(b32_random))
|
||||
});
|
||||
});
|
||||
|
||||
describe('is Util module import?', function() {
|
||||
|
||||
let now = jsotp.Util.timecode(new Date(), 30);
|
||||
|
||||
it("should return int", function() {
|
||||
assert.equal("number", typeof(now))
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user