Fixed HOTP, TOTP and added test for HOTP

feature-extract-files
bwhitn 2017-12-16 09:10:52 -05:00
parent 47ce240e70
commit 9bc6c46dc3
3 changed files with 27 additions and 2 deletions

View File

@ -1,5 +1,6 @@
import otp from "otp";
import Base64 from "./Base64.js";
import Utils from "../Utils.js";
/**
* One-Time Password operations.
@ -24,7 +25,7 @@ const OTP = {
name: args[0],
keySize: args[1],
codeLength: args[2],
secret: Base64.runTo32(input, []),
secret: Base64.runTo32(Utils.strToByteArray(input), []),
epoch: args[3],
timeSlice: args[4]
});
@ -44,7 +45,7 @@ const OTP = {
name: args[0],
keySize: args[1],
codeLength: args[2],
secret: Base64.runTo32(input, []),
secret: Base64.runTo32(Utils.strToByteArray(input), []),
});
const counter = args[3];
return `URI: ${otpObj.hotpURL}\n\nPassword: ${otpObj.hotp(counter)}`;

View File

@ -25,6 +25,7 @@ import "./tests/operations/Hash.js";
import "./tests/operations/Image.js";
import "./tests/operations/MorseCode.js";
import "./tests/operations/MS.js";
import "./tests/operations/OTP.js";
import "./tests/operations/StrUtils.js";
import "./tests/operations/SeqUtils.js";

View File

@ -0,0 +1,23 @@
/**
* OTP HOTP tests.
*
* @author bwhitn [brian.m.whitney@outlook.com]
*
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
import TestRegister from "../../TestRegister.js";
TestRegister.addTests([
{
name: "Generate HOTP",
input: "12345678901234567890",
expectedOutput: "URI: otpauth://hotp/OTPAuthentication?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ\n\nPassword: 755224",
recipeConfig: [
{
op: "Generate HOTP",
args: ["", 32, 6, 0],
},
],
},
]);