Totp
Time-based one-time password (TOTP) implementation according to rfc6238
should only be used by the TYPO3 Core
Table of Contents
Properties
Methods
- __construct() : mixed
- generateEncodedSecret() : string
- Generate the shared secret (K) by using a random and applying additional authentication factors like username or email address.
- generateTotp() : string
- Generate a time-based one-time password for the given counter according to rfc4226
- getTotpAuthUrl() : string
- Generate and return the otpauth URL for TOTP
- verifyTotp() : bool
- Verify the given time-based one-time password
- compare() : bool
- Compare given time-based one-time password with a time-based one-time password generated from the known $counter (the moving factor).
- getDecodedSecret() : string
- getTimeCounter() : int
- Generate the counter value (moving factor) from the given timestamp
Properties
$algo
protected
string
$algo
$epoch
protected
int
$epoch
$length
protected
int
$length
$secret
protected
string
$secret
$step
protected
int
$step
Methods
__construct()
public
__construct(string $secret[, string $algo = 'sha1' ][, int $length = 6 ][, int $step = 30 ][, int $epoch = 0 ]) : mixed
Parameters
- $secret : string
- $algo : string = 'sha1'
- $length : int = 6
- $step : int = 30
- $epoch : int = 0
generateEncodedSecret()
Generate the shared secret (K) by using a random and applying additional authentication factors like username or email address.
public
static generateEncodedSecret([array<string|int, mixed> $additionalAuthFactors = [] ]) : string
Parameters
- $additionalAuthFactors : array<string|int, mixed> = []
Return values
stringgenerateTotp()
Generate a time-based one-time password for the given counter according to rfc4226
public
generateTotp(int $counter) : string
Parameters
- $counter : int
-
A timestamp (counter) according to rfc6238
Return values
string —The generated TOTP
getTotpAuthUrl()
Generate and return the otpauth URL for TOTP
public
getTotpAuthUrl(string $issuer[, string $account = '' ][, array<string|int, mixed> $additionalParameters = [] ]) : string
Parameters
- $issuer : string
- $account : string = ''
- $additionalParameters : array<string|int, mixed> = []
Return values
stringverifyTotp()
Verify the given time-based one-time password
public
verifyTotp(string $totp[, int|null $gracePeriod = null ]) : bool
Parameters
- $totp : string
-
The time-based one-time password to be verified
- $gracePeriod : int|null = null
-
The grace period for the TOTP +- (mainly to circumvent transmission delays)
Return values
boolcompare()
Compare given time-based one-time password with a time-based one-time password generated from the known $counter (the moving factor).
protected
compare(string $totp, int $counter) : bool
Parameters
- $totp : string
-
The time-based one-time password to verify
- $counter : int
-
The counter value, the moving factor
Return values
boolgetDecodedSecret()
protected
getDecodedSecret() : string
Return values
stringgetTimeCounter()
Generate the counter value (moving factor) from the given timestamp
protected
getTimeCounter(int $timestamp) : int
Parameters
- $timestamp : int