TotpSecret

public interface TotpSecret


Represents a TOTP secret that is used for enrolling a TOTP second factor. Contains the shared secret key and other parameters to generate time-based one-time passwords. Implements methods to retrieve the shared secret key, generate a QR code URL, and open the QR code URL in an OTP authenticator app.

Summary

Public methods

abstract @NonNull String

Returns a QR code URL.

abstract @NonNull String
generateQrCodeUrl(@NonNull String accountName, @NonNull String issuer)

Returns a QR code URL.

abstract int

Returns the interval (in seconds) when the OTP codes should change.

abstract int

Returns the length of the OTP codes to be generated.

abstract long

Returns the timestamp (in seconds since epoch) by which enrollment should complete.

abstract @NonNull String

Returns the hashing algorithm used to generate time-based one-time passwords.

abstract @NonNull String

Returns the enrollment session.

abstract @NonNull String

Returns the shared secret key/seed used to generate time-based one-time passwords.

abstract void

Opens the specified QR Code URL in an OTP authenticator app on the device as a new Activity.

abstract void
openInOtpApp(
    @NonNull String qrCodeUrl,
    @NonNull String fallbackUrl,
    @NonNull Activity activity
)

Opens the specified QR Code URL in an OTP app on the device.

Public methods

generateQrCodeUrl

abstract @NonNull String generateQrCodeUrl()

Returns a QR code URL. For more details, see Key-Uri-Format. You can display this URL to the end-user as a QR code to be scanned into an OTP authenticator app, like Google Authenticator. Alternatively, you can automatically load this URL into a TOTP authenticator app using openInOtpApp.

Returns
@NonNull String

A QR code URL String.

generateQrCodeUrl

abstract @NonNull String generateQrCodeUrl(@NonNull String accountName, @NonNull String issuer)

Returns a QR code URL. For more details, see Key-Uri-Format. You can display this URL to the end-user as a QR code to be scanned into an OTP authenticator app, like Google Authenticator. Alternatively, you can automatically load this URL into a TOTP authenticator app using openInOtpApp.

Parameters
@NonNull String accountName

the name of the account/app along with a user identifier..

@NonNull String issuer

issuer of the TOTP (the app name).

Returns
@NonNull String

A QR code URL String.

getCodeIntervalSeconds

abstract int getCodeIntervalSeconds()

Returns the interval (in seconds) when the OTP codes should change.

Returns
int

The interval (in seconds) when the OTP codes should change.

getCodeLength

abstract int getCodeLength()

Returns the length of the OTP codes to be generated.

Returns
int

Length of the one-time passwords to be generated.

getEnrollmentCompletionDeadline

abstract long getEnrollmentCompletionDeadline()

Returns the timestamp (in seconds since epoch) by which enrollment should complete.

Returns
long

The timestamp (in seconds since epoch) by which enrollment should complete.

getHashAlgorithm

abstract @NonNull String getHashAlgorithm()

Returns the hashing algorithm used to generate time-based one-time passwords.

Returns
@NonNull String

Hashing algorithm used.

getSessionInfo

abstract @NonNull String getSessionInfo()

Returns the enrollment session.

getSharedSecretKey

abstract @NonNull String getSharedSecretKey()

Returns the shared secret key/seed used to generate time-based one-time passwords.

Returns
@NonNull String

Shared secret key for enrolling in TOTP MFA.

openInOtpApp

abstract void openInOtpApp(@NonNull String qrCodeUrl)

Opens the specified QR Code URL in an OTP authenticator app on the device as a new Activity. The shared secret key and account name will be populated in the OTP authenticator app. The URL uses the otpauth:// scheme and will be opened on an app that handles this scheme, if it exists on the device.

If a suitable OTP authenticator app was not found, this opens the Google Play Store instead, using the following URL: https://play.google.com/store/search?q=otpauth&c=apps.

Parameters
@NonNull String qrCodeUrl

the QR Code URL to open.

openInOtpApp

abstract void openInOtpApp(
    @NonNull String qrCodeUrl,
    @NonNull String fallbackUrl,
    @NonNull Activity activity
)

Opens the specified QR Code URL in an OTP app on the device. The shared secret key and account name will be populated in the OTP app. The URL uses the otpauth:// scheme and will be opened on an app that handles this scheme, if it exists on the device.

Parameters
@NonNull String qrCodeUrl

the QR Code URL to open.

@NonNull String fallbackUrl

the URL to open if a suitable OTP authenticator app was not found.

@NonNull Activity activity

a reference to the current activity, to open the OTP authenticator app on.