Sanitize the secret

This commit is contained in:
vishnukvmd 2022-11-11 19:51:54 +05:30
parent 92c2247aa1
commit 824c6d769b
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,5 @@
import 'package:ente_auth/utils/totp_util.dart';
class Code {
static const defaultDigits = 6;
static const defaultPeriod = 30;
@ -51,7 +53,7 @@ class Code {
_getIssuer(uri),
_getDigits(uri),
_getPeriod(uri),
uri.queryParameters['secret']!,
getSanitizedSecret(uri.queryParameters['secret']!),
_getAlgorithm(uri),
_getType(uri),
rawData,

View file

@ -3,7 +3,7 @@ import 'package:otp/otp.dart' as otp;
String getTotp(Code code) {
return otp.OTP.generateTOTPCodeString(
code.secret,
getSanitizedSecret(code.secret),
DateTime.now().millisecondsSinceEpoch,
length: code.digits,
interval: code.period,
@ -14,7 +14,7 @@ String getTotp(Code code) {
String getNextTotp(Code code) {
return otp.OTP.generateTOTPCodeString(
code.secret,
getSanitizedSecret(code.secret),
DateTime.now().millisecondsSinceEpoch + code.period * 1000,
length: code.digits,
interval: code.period,
@ -33,3 +33,7 @@ otp.Algorithm _getAlgorithm(Code code) {
return otp.Algorithm.SHA1;
}
}
String getSanitizedSecret(String secret) {
return secret.toUpperCase().trim();
}