upd: group the classes and export to one

This commit is contained in:
lancegin
2017-06-30 15:05:40 +08:00
parent ad67a82794
commit a6b7e7f5bb
2 changed files with 75 additions and 4 deletions

View File

@@ -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
View 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))
});
});
});