SailOTP — это Sailfish-реализация алгоритмов Google-Authenticator, также известных как TOTP (на основе таймера) и HOTP (на основе счетчиков).
Добавить новые OTP-записи можно с помощью выпадающего меню. Коды можно добавлять с помощью камеры, отсканировав QR-код, или вручную, вводя информацию о токене.
На главном экране приложения показан список всех записей и их текущих одноразовых токенов. Записи будут обновляться каждые 30 секунд, оставшееся время для текущих токенов отображается через индикатор выполнения в верхней части приложения. Токены типа HOTP не обновляются автоматически, вместо этого справа от токена отображается кнопка обновления для расчета следующего значения и увеличения счетчика. Запись можно редактировать, удалять или перемещать вверх и вниз по списку, удерживая её.
В режиме редактирования можно отобразить QR-код записи (например, для её импорта на другое устройство) через выпадающее меню. Токен можно скопировать в буфер обмена, нажав на него.
Из выпадающего меню можно сделать резервную копию базы данных токенов. Она представляет собой файл, зашифрованный AES-256-CBC и кодированный Base64, содержащий JSON-представление базы данных. Его можно расшифровать с помощью openssl, используя следующую команду:
openssl enc -d -a -aes-256-cbc -in <file_name>
В выпадающем меню также есть возможность импорта файла резервной копии. Если файл содержит токены, которые уже есть в базе данных (название и секрет токена совпадают с существующими), эти токены не будут добавлены повторно.
В SailOTP также возможно генерировать токены для SteamGuard (TOTP-вариант Steam для двухфакторной аутентификации). Чтобы использовать эту функцию, необходимо активировать её с помощью оригинального приложения Steam для Android. После активации можно получить секретный код в директории:
/opt/alien/data/data/com.valvesoftware.android.steam.community/files/Steamguard-$STEAMID
Этот файл содержит данные JSON, включая URL-адрес OTP в формате:
otpauth://totp/Steam:$STEAM_USERNAME?secret=$SECRET&issuer=Steam
Этот URL-адрес можно добавить вручную, используя тип OTP Steam Guard в SailOTP.