99 [[nodiscard]]
static auto parse(
const QString &config)
100 -> std::optional<Settings>;
107 [[nodiscard]]
static auto isValid(
const QString &config) -> bool;
115 [[nodiscard]]
static auto generate(
const Settings &settings, quint64 unixTime)
131 [[nodiscard]]
static auto counter(
const Settings &settings, quint64 unixTime)
142 quint64 unixTime) -> uint;
157 [[nodiscard]]
static auto toUri(
const Settings &settings) -> QString;
168 [[nodiscard]]
static auto normalize(
const QString &config,
169 const QString &label = {},
170 const QString &issuer = {}) -> QString;
Algorithm
HMAC hash function, selected by the algorithm URI parameter.
@ Sha1
HMAC-SHA-1, the RFC 6238 default.
static constexpr uint MAX_STEP
static constexpr uint MIN_DIGITS
Lower clamp for digits.
static constexpr uint DEFAULT_STEP
RFC 6238 default period.
static auto counter(const Settings &settings, quint64 unixTime) -> quint64
Time-step counter for a point in time.
static auto generateNow(const Settings &settings) -> QString
Generate the code for the current wall-clock time.
static constexpr uint DEFAULT_DIGITS
RFC 6238 default code length.
static constexpr qsizetype MAX_CONFIG_LENGTH
static constexpr uint STEAM_DIGITS
Steam codes are always 5 chars.
static auto currentUnixTime() -> quint64
Current wall-clock time.
static auto toUri(const Settings &settings) -> QString
Serialise settings as a canonical otpauth URI.
static auto normalize(const QString &config, const QString &label={}, const QString &issuer={}) -> QString
Normalise a user-entered value to a canonical otpauth URI.
static auto generate(const Settings &settings, quint64 unixTime) -> QString
Generate the code for a given point in time.
Encoder
Digit encoding, selected by the encoder URI parameter.
@ Base10
RFC 6238 decimal digits, zero padded.
static auto parse(const QString &config) -> std::optional< Settings >
Parse an OTP configuration string.
static constexpr uint MAX_DIGITS
Upper clamp for digits.
static auto isValid(const QString &config) -> bool
Convenience validity test, for UI feedback.
static auto secondsRemaining(const Settings &settings, quint64 unixTime) -> uint
Seconds until the code for unixTime expires.
Totp()=default
Static-only class; never instantiated.
Validated TOTP parameters. Only Totp::parse() produces one.
QString label
otpauth label; may be empty.
uint digits
Code length, MIN_DIGITS..MAX_DIGITS.
QByteArray key
Decoded shared secret; never empty.
QString base32Key
Sanitized base32 secret, for re-serialisation.
Algorithm algorithm
HMAC hash function.
uint step
Period in seconds, 1..MAX_STEP.
QList< QPair< QString, QString > > extraParams
Encoder encoder
Digit encoding.