% $Id$ % \subsection{One-Time Password Client} This plugin provides the ability to generate one-time passwords (OTPs) for authentication purposes. It implements an HMAC-based One-Time Password Algorithm (RFC 4226), and on targets which support it, a Time-based One-Time Password Algorithm (RFC 6238). \subsubsection{Adding Accounts} The plugin supports two methods of adding accounts: URI import, and manual entry. \opt{rtc}{ It is important to note that for TOTP (time-based) accounts to work properly, the clock on your device MUST be accurate to no less than 30 seconds from the time on the authentication server, and the correct time zone must be configured in the plugin. See \reference{ref:Timeanddateactual} for more information. } \subsubsection{URI Import} This method of adding an account reads a list of URIs from a file. It expects each URI to be on a line by itself in the following format: \begin{verbatim} otpauth://[hotp OR totp]/[account name]?secret=[Base32 secret][&counter=X][&period=X][&digits=X] \end{verbatim} An example is shown below, provisioning a TOTP key for an account called ``bob'': \begin{verbatim} otpauth://totp/bob?secret=JBSWY3DPEHPK3PXP \end{verbatim} Any other URI options are not supported and will be ignored. Most services will provide a scannable QR code that encodes a OTP URI. In order to use those, first scan the QR code separately and save the URI to a file on your device. If necessary, rewrite the URI so it is in the format shown above. For example, GitHub's URI has a slash after the provider. In order for this URI to be properly parsed, you must rewrite the account name so that it does not contain a slash. \subsubsection{Manual Import} If direct URI import is not possible, the plugin supports the manual entry of data associated with an account. After you select the ``Manual Entry'' option, it will prompt you for an account name. You may type anything you wish, but it should be memorable. It will then prompt you for the Base32-encoded secret. Most services will provide this to you directly, but some may only provide you with a QR code. In these cases, you must scan the QR code separately, and then enter the string following the ``secret='' parameter on your Rockbox device manually. On devices with a real-time clock, \opt{rtc}{like yours,} the plugin will ask whether the account is a time-based account (TOTP). \opt{rtc}{If you answer ``yes'' to this question, it will ask for further information regarding the account. Usually it is safe to accept the defaults here. } However, if your device lacks a real-time clock, the plugin's functionality will be restricted to HMAC-based (HOTP) accounts only. If this is the case, the plugin will prompt you for information regarding the HOTP setup. \opt{rtc} { \subsection{Advanced Settings} \subsubsection{Time Zone Configuration} In order for TOTP accounts to work properly, the plugin must be able to determine the current UTC time. This means that, first, your device's clock must be synchronized with UTC time, and second, that the plugin knows what time zone the clock is using. The plugin will prompt you on its first run for this piece of information. However, should this setting need changing at a later time, possibly due to Daylight Saving Time adjustment, it is located under the ``Advanced'' submenu. NOTE: in the UI simulator, use the ``UTC'' setting no matter what the clock may read. }