1
0
Fork 0
mirror of https://github.com/seiichiro0185/sailotp.git synced 2024-11-22 15:49:43 +00:00

Catch error from invalid secrets

This commit is contained in:
seiichiro 2014-01-08 19:16:56 +01:00
parent 50770f0799
commit ef1b5ad51d

View file

@ -75,15 +75,19 @@ function calcOTP(secret) {
// Get last full 30 / 60 Seconds and convert to HEX // Get last full 30 / 60 Seconds and convert to HEX
var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0'); var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0');
// Calculate the SHA-1 HMAC Value from time and key try {
var hmacObj = new SHA.jsSHA(time, 'HEX'); // Calculate the SHA-1 HMAC Value from time and key
var hmac = hmacObj.getHMAC(key, 'HEX', 'SHA-1', "HEX"); var hmacObj = new SHA.jsSHA(time, 'HEX');
var hmac = hmacObj.getHMAC(key, 'HEX', 'SHA-1', "HEX");
// Finally convert the HMAC-Value to the corresponding 6-digit token // Finally convert the HMAC-Value to the corresponding 6-digit token
var offset = hex2dec(hmac.substring(hmac.length - 1)); var offset = hex2dec(hmac.substring(hmac.length - 1));
var otp = (hex2dec(hmac.substr(offset * 2, 8)) & hex2dec('7fffffff')) + ''; var otp = (hex2dec(hmac.substr(offset * 2, 8)) & hex2dec('7fffffff')) + '';
otp = (otp).substr(otp.length - 6, 6); otp = (otp).substr(otp.length - 6, 6);
} catch (e) {
otp = "Invalid Secret!"
}
// return the calculated token // return the calculated token
return otp; return otp;