SailOTP

Rating: 
5
Your rating: None Average: 5 (30 votes)

SailOTP is a Sailfish Implementation of the Google-Authenticator algorithms, also known as TOPT (timer based) and HOTP (counter based) as described in RFC 6238 and 4226. A growing number of sites uses this algorithm for two-factor-authentication, including Github, Linode and several Google services.

One can add new OTP-entries using the pulley-menu. Codes can be added using the integrated QR-Code-Reader or by manually typing in the token information.

The main view of the app will show a list off all entries and their current One-Time-Tokens. The entries will be regenerated every 30 seconds, the remaining time for the current tokens is shown through a progress bar at the top of the app. HOTP-type tokens are not updated automatically, instead a refresh button is shown on the right of the token to calculate the next value and increment the counter. An entry can be edited, deleted or moved up and down in the list by long-pressing on it.

In edit-mode one can show a QR-Code of the entry (e.g. for importing it on another device) through the pulley menu.

One entry can be stared by tapping the star icon on the left. the stared item will be shown on the ActiveCover. If the Token is timer based, it will be refreshed every 30 seconds. 5 seconds before the token changes it's color will change to red. For counter based tokens a cover action to calculate the next token is shown instead. The item can be unstared by tapping the star icon again on the main view.

From the main view a token can be copied to the clipboard by tapping on it.

From the pulley menu the token database can be exported to a file for backup purposes. The backup is a AES-256-CBC encrypted and
Base64 encoded file containing a JSON-representation of the database. It can be decrypted with openssl using the following command:

openssl enc -d -a -aes-256-cbc -in <file>

if you need the information outside of SailOTP.

Importing the file is also possible from the pulley menu. If a file contains tokens that are already in the database (title and secret of the token match an existing one), these tokens will not be added again.

It is also possible to generate tokens for SteamGuard (Steams TOTP-Variant for 2-Factor-Auth). To use this feature, one will have to activate it using the original Steam Android app. After activating it one can get the secret code from '/opt/alien/data/data/com.valvesoftware.android.steam.community/files/Steamguard-$STEAMID'. This file contains json data, including the OTP-URL in the form 'otpauth://totp/Steam:$STEAM_USERNAME?secret=$SECRET&issuer=Steam'. The code from this URL can be added manually using the 'Steam Guard'-OTP-Type in SailOTP.

If you find any bugs or want to suggest a feature, feel free to use Githubs Issues feature or write an email to sailfish _AT_ seiichiro0185.org

Changelog:

Version 1.11.1

  • Fix Empty Token List after Restart on New Installs

Version 1.11.0

Version 1.10.2

  • Add Missing Camera Permission (contributed by Keeper-of-the-Keys)

Version 1.10.1

  • Update Swedish Translation (contributed by Åke Engelbrektson)

Version 1.10.0

  • Added Customizable Time Period (contributed by Andrey Skvortsov)
  • Added SailJail Permissions (contributed by DrYak)

Version 1.9.4

  • Update Brazilian Portuguese Translation (contributed by caio2k)
  • Refreshed App Icon (contributed by JSEHV)

Version 1.9.3

  • Added Hungarian Translation (contributed by 1Zgp)

Version 1.9.2

  • Fix a Small Bug in Search (conbtributed by Jyri-Petteri Paloposki)

Version 1.9.1

  • Fix About Page (contributed in parts by Jyri-Petteri Paloposki)
  • Update Swedish Translation (contributed by Åke Engelbrektson)
  • Small Visual Fix for the Progressbar

Version 1.9.0

  • Added Search Functionality (contributed by Jyri-Petteri Paloposki)
  • Updated Finnish Translation (contributed by Jyri-Petteri Paloposki)

Version 1.8.2

  • Added Dutch Translation
  • Adapted Base32 Check to Accept Amazons Secrets

Version 1.8.1

  • Translation Updates

Version 1.8.0

  • Added possibility to show a Token as QR-Code
  • Added possibility to hide Tokens by default and reveal on tap
  • Added Base32 input validation for secret
  • Fix progressbar placement for different screen sizes / ambiances
  • Fix About-Page styling for light ambiances

Version 1.7.2

  • Small Visual Fix for SailfishOS 2.2.0.29

Version 1.7.1

  • Added Italian Translation contributed by Tichy
  • Adapted Packaging for new Harbour Rules

Version 1.7

  • Added Chinese Translation contributed by BirdZhang
  • Added Finnish Translation contributed by Johan Heikkilä (hevanaa)
  • Added Russian Translation contributed by moorchegue
  • Added Spanish Translation contributed by p4moedo
  • Some internal Preparation for future features

Version 1.6

  • Changed AES Crypto Engine to Fix Import  / Export Problem
  • NOTE: You should recreate your Backup Exports since they may note be readable with the new Version due to the bug.

Version 1.5

  • Added French Translation (Thanks to Romain Tartière)
  • Bugfix: Refresh HOTP-Token from Cover. Closes Github Issue #11

Version 1.4

  • Length of the Token can be set
  • Time Derivation is configurable

Version 1.3

  • Added Support für SteamGuard Tokens (Thanks to Robin Appelman)

Version 1.2

  • Added swedish translation contibuted by Åke Engelbrektson

Version 1.1

  • Added URL-decoding for OTP-titles when scanning QR-codes

Version 1.0

  • QR-Code reader is now harbour-compatible

Version 0.8

  • Added QR-Code-Export for tokens from the edit page
  • Added possibility to reorder tokens

Version 0.7

  • Added Integrated QR-reader for adding tokens

Version 0.6

  • Added internationalization support
  • Added German Translation
  • Tokens can be switched on the Cover
  • Some minor UI-tweaks

Version 0.5

  • Added Export / Import for the Tokens Database

Version 0.4

  • Added possibility to use HOTP-tokens

Version 0.3

  • Added possibility to "star" an entry to show it on the ActiveCover
  • Tokens can be copied to the clipboard by tapping on them

Version 0.2

  • Added possibility to edit existing entries
  • Better error handling for invalid secrets
  • Better input checks on add/edit

Version 0.1

  • Initial Release

 

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-sailotp-1.11.1-1.aarch64.rpm268.42 KB26/02/2023 - 20:38
File harbour-sailotp-1.11.1-1.armv7hl.rpm246.67 KB26/02/2023 - 20:38
File harbour-sailotp-1.11.1-1.i486.rpm293.11 KB26/02/2023 - 20:38
File harbour-sailotp-1.11.0-1.aarch64.rpm261.24 KB26/02/2023 - 18:31
File harbour-sailotp-1.11.0-1.armv7hl.rpm240.57 KB26/02/2023 - 18:31
File harbour-sailotp-1.11.0-1.i486.rpm286.75 KB26/02/2023 - 18:31
File harbour-sailotp-1.10.2-1.aarch64.rpm258.52 KB25/01/2023 - 17:45
File harbour-sailotp-1.10.2-1.armv7hl.rpm237.54 KB25/01/2023 - 17:45
File harbour-sailotp-1.10.2-1.i486.rpm281.74 KB25/01/2023 - 17:45
File harbour-sailotp-1.10.1-1.aarch64.rpm257.72 KB27/12/2022 - 19:30
File harbour-sailotp-1.10.1-1.armv7hl.rpm237.72 KB27/12/2022 - 19:30
File harbour-sailotp-1.10.1-1.i486.rpm281.6 KB27/12/2022 - 19:30
File harbour-sailotp-1.10.0-1.aarch64.rpm257.62 KB18/12/2022 - 15:20
File harbour-sailotp-1.10.0-1.armv7hl.rpm237.26 KB18/12/2022 - 15:20
File harbour-sailotp-1.10.0-1.i486.rpm281.36 KB18/12/2022 - 15:20
File harbour-sailotp-1.9.4-1.aarch64.rpm240.51 KB26/06/2021 - 17:19
File harbour-sailotp-1.9.4-1.armv7hl.rpm219.05 KB26/06/2021 - 17:19
File harbour-sailotp-1.9.4-1.i486.rpm263.13 KB26/06/2021 - 17:19
File harbour-sailotp-1.9.3-1.aarch64.rpm310.88 KB26/05/2021 - 08:59
File harbour-sailotp-1.9.3-1.armv7hl.rpm265.69 KB21/02/2021 - 14:27
File harbour-sailotp-1.9.3-1.i486.rpm309.53 KB21/02/2021 - 14:27
File harbour-sailotp-1.9.2-1.armv7hl.rpm263.73 KB18/01/2021 - 20:04
File harbour-sailotp-1.9.2-1.i486.rpm307.97 KB18/01/2021 - 20:04
File harbour-sailotp-1.9.1-1.armv7hl.rpm263.73 KB11/01/2021 - 19:18
File harbour-sailotp-1.9.1-1.i486.rpm307.5 KB11/01/2021 - 19:18
File harbour-sailotp-1.9.0-1.armv7hl.rpm263.62 KB04/01/2021 - 22:23
File harbour-sailotp-1.9.0-1.i486.rpm307.55 KB04/01/2021 - 22:23
File harbour-sailotp-1.8.2-1.armv7hl.rpm254.76 KB07/04/2019 - 22:37
File harbour-sailotp-1.8.2-1.i486.rpm287.37 KB07/04/2019 - 22:37
File harbour-sailotp-1.8.1-1.armv7hl.rpm253.18 KB03/03/2019 - 19:15
File harbour-sailotp-1.8.1-1.i486.rpm286.03 KB03/03/2019 - 19:15
File harbour-sailotp-1.8.0-1.armv7hl.rpm253.11 KB24/02/2019 - 18:24
File harbour-sailotp-1.8.0-1.i486.rpm285.92 KB24/02/2019 - 18:24
File harbour-sailotp-1.7.2-1.armv7hl.rpm219.17 KB17/06/2018 - 10:11
File harbour-sailotp-1.7.2-1.i486.rpm273.3 KB17/06/2018 - 10:11
File harbour-sailotp-1.7.1-1.armv7hl.rpm219.08 KB09/04/2018 - 20:12
File harbour-sailotp-1.7.1-1.i486.rpm252.24 KB09/04/2018 - 20:12
File harbour-sailotp-1.7-1.armv7hl.rpm188.88 KB02/04/2018 - 10:42
File harbour-sailotp-1.7-1.i486.rpm221.48 KB02/04/2018 - 10:42
File harbour-sailotp-1.6-1.armv7hl.rpm181.65 KB30/10/2017 - 14:12
File harbour-sailotp-1.6-1.i486.rpm214.47 KB30/10/2017 - 14:12
Changelog: 

- Fix Empty Token List after Restart for New Installs.

Comments

vige's picture

Why is the "Copy to Clipboard" menu item hidden unless we have enabled "hide tokens" or "show tokens as qr"? Not a big deal, but I had to actually go and read the source code before realizing that the copy feature even exists.

seiichiro0185's picture

If you don't have one of these features (hide token and reveal on tap or show qr-code on tap) enabled there is no menu item because simply taping on the token will copy it to the clipboard. If another function is selected for taping on the token the menu item will appear to make copying still possible.

vige's picture

:-O I never realized that...

vige's picture

Hi, any chance of getting aarch64 build?

seiichiro0185's picture

When Sailfish IDE gets support for 4.0.1 and aarch64 targets, I'll look into it.

vige's picture

Well the support for 4.0.1 aarc64 target has been in the SDK since Feb 4th: https://forum.sailfishos.org/t/release-notes-sailfish-sdk-3-3/3289/5

The aarch64 targets just aren't installed by default, you need to either select them in the installer or maintenance tool, or use 'sfdk tools install SailfishOS-4.0.1.48-aarch64' from command line.

seiichiro0185's picture

Unfortunately I had some troubles with the SDK and installing the aarch64 Target. After finally getting it to work I have  now added an aarch64 build here.

DrYak's picture

As a way to simplify building for other arches, would you consider adding SailOTP also the SailfishOS:Chum?
(the automatic build-from-source repo)

simosagi's picture

Hi. Since recently, probably from the update to 1.9.1, when I open SailOTP for a split second I see some text (something like 'Nothing here' ?) before my entries are shown.

Everything seems to work, but it's a little annoying (also because there is not enough time to fully read the message so one wonders what exactly that was)

Device is a Sony Xperia XA2, with SailfishOS 3.3

 

BTW: issue is still there in 1.9.2

seiichiro0185's picture

Because of the way loading of the tokens is implemented at the moment, SailOTP starts with the "Nothing here" message you see when no tokens are configured. Depending on how fast the tokens load, this screen might be visible for a split second before the tokens appear on screen.

This behaviour was also there in older version. Maybe the addition of search made loading "slow" enough to make this more visible since 1.9.

simosagi's picture

Ok, thanks.

I hope you can find a way to make displaying that message conditional to a first pass to check for existing tokens.

cartron's picture

wow, search functionnality, super nice!!! I was missing that, it was hard to scroll through all the items and find the correct one easily, this will definitely help, thanks!!!

explit's picture

Small cosmetic bug: About version still show: Version 1.8.1

seiichiro0185's picture

Oops, totally missed that one, thanks for the heads up. Will be fixed in 1.9.1.

muppis's picture

Works fine with Microsoft O365 MFA.

lra's picture

Hi.

I'm curious how did you get the O365 account working on Sailfish? Been trying for a while and all I can see is the mail folders (Inbox, Sent, etc.), but not able to download or send any messages.

MacGyver's picture

Would it be possible to add like a PIN code (and/or password) for starting the app and when focusing on it again? Would be nice to be able to protect the codes too.

Im guessing the token database is encrypted?

nobodyinperson's picture

Awesome app! Thank you very much!

MooCrumpus's picture

Can't import Amazone's QR Code.

donni106's picture

+1, same for me. It seems that the Amazon token is too long?

seiichiro0185's picture

I uploaded Version 1.8.2 which does fix the problem with Amazon Tokens for me. Please check if it also helps in your case.

donni106's picture

Thanks for your time and this rapid deployment. The new version works fine with Amazon.

Historyscholar's picture

Awesome 

fravaccaro's picture

Is there any way to import andOTP databases?

seiichiro0185's picture

At the moment there is no import functionality for other OTP tools. The import function can only read SailOTPs own backup files.

Only way to Import is to get a way to extract the secrets from andOTP and import them manually (via adding them manually from the drop-down menu in the QR-Code scanner page)

Ygorr's picture

Does it support SecureAuth?

mousse04's picture

Unfortunately, no it doesn't support :(

seiichiro0185's picture

At the moment SailOTP supports the TOTP and HOTP  standards (RFC 6238 and RFC 4226). Additionally it supports generation of Steam Authenticator Tokens. I don't know if SecureAuth uses one of the open OTP standards, if they do, it might be possible to generate tokens with SailOTP. I don't have access to any systems using SecureAuth, so I can't do any testing with it.

MooCrumpus's picture

It would be nice, when minimized - where you can carousel through the codes, to be able to copy the code to clipboard. Just the way OwnKeepass handles it.

pauligrinder's picture

The steam guard option doesn't seem to work. I succesfully added the secret code found in the original android app, but Steam doesn't accept codes generated by SailOTP :(

Pages