Giter Site home page Giter Site logo

andotp / andotp Goto Github PK

View Code? Open in Web Editor NEW
3.7K 100.0 358.0 13.54 MB

[Unmaintained] Open source two-factor authentication for Android

License: MIT License

Java 100.00%
two-factor-authentication otp totp android material-design hotp openpgp backup

andotp's Introduction

andOTP - Android OTP Authenticator

Build Status Current release Crowdin Chat - Telegram Chat - Matrix

andOTP

Unmaintained

This repository is currently unmaintained.

See this XDA post for more details.

Intro

andOTP is a two-factor authentication App for Android 5.1+.

It implements Time-based One-time Passwords (TOTP) and HMAC-Based One-Time Passwords (HOTP). Simply scan the QR code and login with the generated 6-digit code.

This project started out as a fork of the great OTP Authenticator app written by Bruno Bierbaumer, which has sadly been inactive since 2015. By now almost every aspect of the app has been changed/re-written so the fork status of the Github repository got detached upon user request. But all credit for the original version and for starting this project still goes to Bruno!

Help wanted:

I currently don't have that much time to spend developing andOTP, so any contributions are always welcome. Don't worry, I will still continue to develop andOTP it will just slow down from the incredible speed I had going in the beginning.

Features:

  • Free and Open-Source
  • Requires minimal permissions
    • Camera access for QR code scanning
    • Storage access for import and export of the database
  • Encrypted storage with two backends:
    • Android KeyStore
    • Password / PIN
  • Multiple backup options:
    • Plain-text
    • Password-protected
    • OpenPGP-encrypted
  • Sleek minimalistic Material Design with three different themes:
    • Light
    • Dark
    • Black (for OLED screens)
  • Great Usability
  • Compatible with Google Authenticator
  • Supported algorithms:
    • TOTP (Time-based One-time Passwords) as specified in RFC 6238
    • HOTP (HMAC-based One-time Passwords) as specified in RFC 4226

Backups:

To keep your account information as secure as possible andOTP only stores it in encrypted data files. A part of the encryption key used for that is stored in the Android KeyStore system. The advantage of this approach is that the key is kept separate from the apps data and, as a bonus, can be backed by hardware cryptography (if your device supports this).

However, due to that separation, backups with 3rd-party apps like Titanium Backup can not be used with andOTP. Such apps only backup the encrypted data files and not the encryption key, which renders them useless.

Please only use the internal backup functions provided by andOTP to backup your accounts! Everything else WILL result in data loss.

Opening the backups on your PC:

  • OpenPGP: OpenPGP can be used to easily decrypt the OpenPGP-encrypted backups on your PC.
  • WebDecrypt: JavaScript-based decryption of the new password-protected backup format in the browser (source code).
  • andOTP-decrypt: Python script written by @asmw to decrypt the old and new password-protected backup format on your PC.
  • mac2fa: Electron app for macOS that lives in your system tray and generates OTPs from an encrypted backup file.
  • go-andotp: CLI Program written in go to encrypt/decrypt andOTP files on your PC. Decrypted files can be encrypted and imported back to andOTP.

Automatic backups:

  • BroadcastReceivers: AndOTP supports a number of broadcasts to perform automated backups, eg. via Tasker. These will get saved to the defined backup directory. These only work when KeyStore is used as the encryption mechanism
    • org.shadowice.flocke.andotp.broadcast.PLAIN_TEXT_BACKUP: Perform a plain text backup. WARNING: This will save your 2FA tokens onto the disk in an unencrypted manner!
    • org.shadowice.flocke.andotp.broadcast.ENCRYPTED_BACKUP: Perform an encrypted backup of your 2FA database using the selected password in settings.

Migration:

Check out this wiki page to learn about the different ways to migrate to andOTP from other 2FA apps.

Downloads:

Get it on Google Play Get it on F-Droid Get it on GitHub

Warning: All three versions (Google Play, F-Droid and the APKs) are not compatible (not signed by the same key)! You will have to uninstall one to install the other, which will delete all your data. So make sure you have a current backup before switching!

Contribute:

  • Translation: If you want to help translate andOTP into your language head over to the Crowdin project.
  • Bug reports and feature requests: You can report bugs and request features in the Issue tracker on GitHub.
  • Requesting thumbnails: If you are missing a thumbnail you can request it by opening a thumbnail request.
  • Discussion and support:
    • XDA thread (please keep off-topic to a minimum)
    • Telegram group @andOTP (if you just want important updates you can mute the group so you only get notified about pinned messages)
    • Matrix channel #andOTP:tchncs.de

Donations:

If you want to show your appreciation for our work with a small donation you can do so using the following links:

Screenshots:

Light theme:

Main Activity Settings Activity Backup Activity

Dark theme:

Main Activity Settings Activity Backup Activity

Black theme:

Main Activity Settings Activity Backup Activity

Acknowledgments:

Open-source components used:

Code examples used:

Previously used open-source components:

Previously used code examples:

License:

Copyright (C) 2017-2020 Jakob Nixdorf <[email protected]>
Copyright (C) 2015 Bruno Bierbaumer

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the
Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.

andotp's People

Contributors

0xbb avatar andriyreznik avatar carmebar avatar danielweigl avatar dpeukert avatar endorama avatar feurenard avatar fingerlessglov3s avatar flocke avatar gelioz avatar harryjohnso avatar ivanlewin avatar jrtberlin avatar jsoberg avatar lizardwithhat avatar lukateras avatar mantinan avatar marverix avatar mbertram avatar mchllngr avatar mellamopablo avatar mikescops avatar r00tusrde avatar reimer-atb avatar richyhbm avatar schwedenmut avatar supervirus avatar ullas-aithal avatar vanitasvitae avatar ziegenberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

andotp's Issues

The backup can not be gpg encrypted with only a pubkey

Motivation:
I do not actively use gpg on my phone but would like to use it to encrypt backups.
I have OpenKeychain installed and my personal public key imported, but I keep no private gpg key on the phone.
This should be sufficient to encrypt the backup, I am aware that I could not re-import the backup like that.

Setup:

  • andOTP and OpenKeychain installed
  • Setup up accounts in andOTP
  • Empty keychain in OpenKeychain
  • Import just a gpg public key in OpenKeychain (still no entry in "My Keys")
  • Set OpenKeychain as gpg provider in andOTP
  • Try to select the imported gpg key for encryption

Result:

  • The imported gpg key can not be selected to be used for encryption

Expected:

  • I can use a gpg key without a private key on the android device to encrypt my backups

prevent duplicates to be added

I just tried to add 3 times the same account (label, issuer and key always the same) and I ended up having 3 identical entries.
IMO, this shouldn't be allowed. What should be allowed instead is having same label & issuer but different key.

andOTP (F-Droid) on LineageOS: all tokens lost after update of LineageOS

Dear all,

my system:

issue:

  • after update of LineageOS all tokens are lost within andOTP (as seen in GUI)
  • I do have a backup otp_accounts.json.aes
  • but when trying to import: no question for password
  • tokens not restored (as seen in GUI)

maybe similar issue:

actions taken so far:

  • actually none
  • waiting for questions

Thank you for any help!

Kind regards,

Gunner

Feature request: tabs for grouping

Hi!
I have more than 20 OTPs, and it's really hard sometimes to search required one.
What if OTPs could be grouped by tab?
I.e. mail tab: and all OTPs for all mails, then work tab: and all OTPs for work.
Thank you.

OpenPGP with OpenKeychain and security token

Using OpenKeychain with a security token ends up in an infinite loop.

OpenKeychain prompt says it has finished succesfully and then then it asks again to put the token near the device.
Using another key that doesn't require security token works as expected.

Tested on 0.2.3(F-Droid) and 0.2.4(Google Play)

Thank you for keeping this awesome project alive πŸ˜„

Option to disable swipe to delete

Help wanted: Please see the first comment and tell me your opinion.

While swiping is quite useful in applications like emails it may not be so much of a daily use in an application like andOTP that deals with pretty static entries. I mean have cliking on the three dots to remove an entry is enough.
I find the swipe quite dangerous since it doesn't remind the name of the entry to be removed in the confirmation pop-up. It would be nice to have an option to completely disable such swiping feature and avoid unexpected removal.

Turn on Documents error when creating backup

General information

  • App version: 0.2.7
  • App source: Google Play
  • Android Version: 5.0.2

Expected result

I expect that after I click Backup (both plain text and OpenPGP) app will create file somewhere and tell me where is that file.

Instead "Turn on Documents in Settings > Installed apps first" popup appears.
I don't have such option in settings, all permissions are turned on.

Logcat

I tried to get log specific to this app using following command adb -d logcat 'org.shadowice.flocke.andotp:E' but it was massive spam. I'm not Android dev, I'd be grateful for hints how to get useful logs. Anyway here is raw logcat dump I created following linked instruction: Gist

Steps to reproduce

  • click Backup > Backup (plain text) or Backup (OpenPGP)

Encrypted password storage

  • Authentication passwords
  • Backup password

This is just a reminder for myself to implement some kind of encrypted/hashed storage for the authentication passwords (password and PIN) and the backup password.

Until now both are stored in plain-text which is not really secure at all.

For the authentication it should be sufficient to simply store the credentials hashed.

For the backup password this is not really an options since the hash of the password is used to generate the key, so knowing the hash would allow someone to decrypt the backups. The simplest solution would be to don't store the backup password at all and ask every time a backup is created or imported. This on the other hand would break support for automated encrypted backups since it would require user-interaction.

Help wanted: I would like to hear some opinions of the users what would be their preferred solution to storing the backup password.

Case sensitive secrets

General information

  • App version: 0.2.7
  • App source: F-Droid
  • Android Version: 7.1.2 (LineageOS 14.1)

I was migrating from Google Autenticator, so I've copied its sqlite database from /data/data/** and created otp_accounts.json file in the format andOTP expects. However, only those secrets that were in uppercase generated the same codes as Google Authenticator, those that were lowercase generated wrong codes. As soon as I've converted all lowercase secrets to uppercase, they've all started to generate correct codes.

Following generates wrong codes:

{"secret":"xyz","label":"[email protected]","period":30,"digits":6,"type":"TOTP","algorithm":"SHA1"}

Following generates correct codes:

{"secret":"XYZ","label":"[email protected]","period":30,"digits":6,"type":"TOTP","algorithm":"SHA1"}

I haven't read the spec whether these codes should always be uppercase, but looks like they should.

I think this is something that can/should be fixed (converted to uppercase on backup restoration), but feel free to close this if it is not relevant.

Make destructive Panic trigger opt-in

In short

Criteria Rank Reason
Impact β˜…β˜…β˜† 2/3 User-facing but niche, matches other Panic-enabled apps
Risk β˜…β˜…β˜† 2/3 Changes default, should be noted in changelog
Intrusiveness β˜…β˜…β˜† 2/3 New UI page, new strings, mostly independent

This would build upon the excellent work in pull request #27.


Standard template

General information

  • App version: 0.2.6
  • App source: GitHub
  • Android Version: N/A

Expected result

What is expected?
On triggering the Panic button, nothing happens by default.

The panic settings must be manually configured to enable wiping OTP data.

What does happen instead?

On triggering the Panic button, OTP data is wiped without any opt-out.

Logcat

[Not recorded, but if needed I can set up the Android emulator to test this]

Steps to reproduce

  • Install and set up andOTP
  • Install some form of panic-button app, e.g. Ripple
  • Check the panic app configuration for an Edit option
  • Try triggering a panic

Authentication bypass via panic app

On the latest 0.2.7 version from F-Droid having both an authentication method enabled combined with the "Reset app settings" panic trigger, results in bypassing the password/pin prompt after triggering a panic.

Steps to reproduce

  • Install app
  • Set 'Authentication' to "Device credentials" (or any other)
  • Set 'Panic Trigger' to "Reset app settings"
  • Add some tokens
  • Exit app
  • Open app to confirm that its locked and exit again
  • Open panic app (eg. Ripple) and trigger a panic
  • Open andOTP
  • See keys without having to enter password/pin

Ways to fix

  • clear() needs to be amended to not reset the settings for Authentication
  • or simply remove the "Reset app settings choice", although "Wipe all accounts" is pretty aggressive, simply locking the app should be the default

Backup Crash

Check if all requirements are fulfilled otherwise the issue will be closed without any comment

  • Add details to fields below
  • Use search. Check if the issue is already reported before creating a new one.
    https://github.com/flocke/andOTP/issues
  • Try again after clearing the apps data before posting
  • Record a logcat: https://goo.gl/mc71vk
  • Bug reports without logcat will be closed (I can not reproduce every bug myself and I can not fix them without logs)
  • Delete this info block

General information

  • **App version: 0.2.8
  • **App source: F-Droid
  • **Android Version: 6.0.1

Expected result

What is expected?
Want to create a backup of my accounts

What does happen instead?
App crashed with: unfortunately app has stopped

Logcat

Log-Bericht - build.board: MSM8974
build.bootloader: s1
build.brand: Sony
build.cpu_abi: armeabi-v7a
build.cpu_abi2: armeabi
build.device: D5803
build.display: 23.5.A.1.291
build.fingerprint: Sony/D5803/D5803:6.0.1/23.5.A.1.291/2769308465:user/release-keys
build.hardware: qcom
build.host: BuildHost
build.id: 23.5.A.1.291
build.manufacturer: Sony
build.model: D5803
build.product: D5803
build.radio: unknown
build.serial: YT9112LXDF
build.tags: release-keys
build.time: 1467083751000
build.type: user
build.user: BuildUser
version.codename: REL
version.incremental: 2769308465
version.release: 6.0.1
version.sdk_int: 23

11-09 08:25:30.740 I/Timeline(1816): Timeline: Activity_windows_visible id: ActivityRecord{832061f u0 org.shadowice.flocke.andotp/.Activities.MainActivity t12129} time:22655894
11-09 08:25:32.716 I/Timeline(10601): Timeline: Activity_launch_request id:org.shadowice.flocke.andotp time:22657871
11-09 08:25:32.717 I/ActivityManager(1816): START u0 {cmp=org.shadowice.flocke.andotp/.Activities.BackupActivity} from uid 10440 on display 0
11-09 08:25:33.198 I/ActivityManager(1816): Displayed org.shadowice.flocke.andotp/.Activities.BackupActivity: +436ms
11-09 08:25:33.211 I/Timeline(1816): Timeline: Activity_windows_visible id: ActivityRecord{d265ec3 u0 org.shadowice.flocke.andotp/.Activities.BackupActivity t12129} time:22658365
11-09 08:25:35.663 E/AndroidRuntime(10601): Process: org.shadowice.flocke.andotp, PID: 10601
11-09 08:25:35.663 E/AndroidRuntime(10601): 	at org.shadowice.flocke.andotp.Activities.BackupActivity.showSaveFileSelector(BackupActivity.java:329)
11-09 08:25:35.663 E/AndroidRuntime(10601): 	at org.shadowice.flocke.andotp.Activities.BackupActivity.saveFileWithPermissions(BackupActivity.java:354)
11-09 08:25:35.663 E/AndroidRuntime(10601): 	at org.shadowice.flocke.andotp.Activities.BackupActivity.access$200(BackupActivity.java:65)
11-09 08:25:35.663 E/AndroidRuntime(10601): 	at org.shadowice.flocke.andotp.Activities.BackupActivity$8.onClick(BackupActivity.java:402)
11-09 08:25:35.665 D/ActivityManager(1816): New dropbox entry: org.shadowice.flocke.andotp, data_app_crash, a4e35840-9a39-485a-b09c-f603c346cd07
11-09 08:25:35.666 W/ActivityManager(1816):   Force finishing activity org.shadowice.flocke.andotp/.Activities.BackupActivity
11-09 08:25:36.172 W/ActivityManager(1816): Activity pause timeout for ActivityRecord{d265ec3 u0 org.shadowice.flocke.andotp/.Activities.BackupActivity t12129 f}
11-09 08:25:39.446 I/WindowState(1816): WIN DEATH: Window{36d2496 u0 org.shadowice.flocke.andotp/org.shadowice.flocke.andotp.Activities.BackupActivity}
11-09 08:25:39.450 I/WindowState(1816): WIN DEATH: Window{8c306e u0 org.shadowice.flocke.andotp/org.shadowice.flocke.andotp.Activities.BackupActivity}
11-09 08:25:39.453 W/InputDispatcher(1816): channel 'f84af0a org.shadowice.flocke.andotp/org.shadowice.flocke.andotp.Activities.MainActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
11-09 08:25:39.453 I/Windo

Steps to reproduce

  • everytime I want to backup data, no matter if with or without encryption.

Backup password input method is bad

Having only one field to enter a password without a button to reveal it is not safe. You could also implement 2 password boxes where the user has to enter the same password twice which IMO is the best way.

We can all make mistakes typing and this is a must have feature!

OTP list empty on Android O

General information

  • App version: 0.2.5
  • App source: F-Droid
  • Android Version: Android O 8.0

Expected result

OTP list remains empty after restoring the app from a TitaniumBackup or restoring a previous backup using the built-in backup feature. When restoring a JSON backup, app states that import has been successfull. Tried to clear cache as well but that didn't help.

Have an icon or picture for each entry

In order to quickly select the right entry or simply view the associated OTP in a faster way it would be nice to have a user selectable little icon/picture for each line.

Import FreeOTP tokens.xml file

How can I import my codes from FreeOTP? They are stored in a xml file, entries look like this:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="example@example:Example">{&quot;algo&quot;:&quot;SHA1&quot;,&quot;counter&quot;:0,&quot;digits&quot;:6,&quot;issuerExt&quot;:&quot;example@example&quot;,&quot;label&quot;:&quot;Example&quot;,&quot;period&quot;:30,&quot;secret&quot;:[98,-92,-87,46,76,-1,117],&quot;type&quot;:&quot;TOTP&quot;}</string>
    <string name="tokenOrder">[&quot;example@example:Example&quot;]</string>
</map>

[Poll] App name inaccurate in some places

Help wanted: Please head down to the poll and vote for a name for the andOTP launcher icon

Android 7.1.1
andOTP 0.22

Steps to reproduce

  1. Install app from F-droid

Actual result

App name is 'OTP Authenticator' in app drawer/Android Home, and in the main screen of the app. App is named 'andOTP' accurately in the about section of the app and in Settings>Apps

Expected result

App name should be 'andOTP' in every instance

Encrypt backup using master password

Currently we have 2 backup options, plain text JSON backup and encrypted OpenPGP backup.

Plain text is not safe and OpenPGP is safe.

The problem is not everyone is using OpenPGP and some are not interested in using OpenPGP and the remaining others dont know how to use OpenPGP.

For me i dont know how to use OpenPGP and i dont like to use it.

My idea is to add a master password option to the app and encrypt the backup using that master password (like password manager apps are doing)

This help the people who are not using OpenPGP.

Current issues :

  1. Already password/lock option is available.

Solution : For this implimentation we need to remove the current lock method we are using in the app (using the device default lock method )

  1. Hard to type password everytime to open app.

Solution : We can add a PIN option to easily unlock app. (like password managers)

Can't import Backup

Hi,

first of all: great app! Thank you very much.

But I'm having trouble importing a backup. I keep getting the following message:
"Import vom externen Speicher fehlgeschlagen"

Dark theme

I really love dark themes and enable them on every app that offers them. Right now I'm using Google Authenticator for its dark theme but I much prefer this app because it lets you backup your keys in a simple JSON or encrypted format.

Automatic backup (import / export) synchronisation to file

I know there is already an automatic backup ticket but this request is a bit broader.

I use Syncthing to synchronise files in a decentralised manner across devices. It would be great if andOTP would automatically read from and write to the unencrypted / encrypted backup file, so that it can be then picked up by Syncthing (pure file based synchronisation) and sent to other devices, to for example another Android device with andOTP, which can then automatically synchronise any new changes.

andOTP Device #1 <-> entries.json.aes <-> Syncthing <-> entries.json.aes <-> andOTP Device #2

[French translation] Visual bugs

Hi!

I fixed a lot of mistakes in the French translation, and discovered a few display bugs:

# File String Bug
1 strings_about.xml Help to translate andOTP to your language Truncated after "votre"
2 strings_about.xml Report bugs or request new features Truncated after "demander de"
3 strings_main.xml Digits Truncated. We can only read "Nombre de". Then there is a line break and "chiffres" is hidden

Screenshots are blocked by the app for the screen were translation 3 appears, but here is a screenshot where you can see translations 1 and 2:

screenshot_20171102-114018_01

Let me know if I can do something more!

In-app language switch (enhancement)

If this is not too difficult and time consuming, please add the ability to switch languages in the application. Sometimes it is more convenient for people to use the application in the original language, and OS in their native language. In addition, it will be useful for translators (an example for me, yes) β€” it is more convenient to check the translation.

[question] encryption details

Hello,
I'm implementing a GTK+ OTP client for GNU/Linux and I would like to add support to import andOTP encrypted backup files.
Looking into the source code, I saw that you are using AES128 GCM with a 12 bytes IV.
So the final encrypted file struct is IV+ENC_TEXT+TAG, right? And what about the key? It seems that it is not entirely user provided, so things here are getting complicated. Or am I missing something?

Thanks :)

"Tap to reveal" behaviour

Just a little improvement - When tapping on entries while "tap to reveal" is enabled, show the OTP when tapping anywhere on the entry, not just the title.

Add a way to sort the entries

Just migrated from freeOTP to andOTP. I like the support for fingerprint authentication and also import/export functions.
I have quite a number of entries in my list and would find very usefully to have an option to sort the entries based upon the label.

All tokens are lost after leaving the app

Password-based encryption:

This issue is the result of an upstream bug in certain custom ROMs. Since version 0.4.0 everyone facing this problem can switch the database encryption to the new password-based encryption in the Settings, which SHOULD solve it.

Help wanted:

Could everyone facing this problem please tell me those things:

  • Model of your phone
  • Which ROM are you using (exact version please)
  • Which Gapps are you using (as well with the exact version)
  • Which method are you using to lock your phone (PIN, Pattern, Swipe, Facelock, Fingerprint, ...)

You can add those information directly to the wiki or post them here.

Original issue

Since the last update all my tokens are gone if i restart the app (or even if it it just moved to the background).

Steps to reproduce

1.) add new token via QR-Code scan -> token is listed in the app
2.) go to homescreen
3.) switch to app again

Expected Behaviour

added token is still there

Actual Behaviour

no token listed

App Version: 0.2.3 (Play Store)
Android Version: 5.0
Device: BQ Aquaris E4.5

can not select a OpenPGP key

I can not select a OpenPGP key from OpenKeychain (all version app from F-droid)
Meizu Pro5, Android 5.1 stock
Also in OpenKeychain is no andOTP in the list of applications
But everything is good on BQ Aquaris M10 FHD with Android 5.1 stock

Feature request: allow more Hash Algorithms

Hi,
seems thereΒ΄s a hardcoded hash algorithm (sha1).
in redhats FreeOTP (also on F-Droid) for example you can choose between md5, sha1, sha256, sha512.

IΒ΄m trying to avoid changing the algorithm on our companys OTP server :)

Black Theme

a black theme would make the app perfect for me (and my OnePlus 3 with an OLED screen)
thanks

Checklist for v0.2.9

TODO before release v0.2.9:

  • Add option to scroll the label if truncated
  • Adaptive icon (WIP, see #65)

Feature request: Steam mobile authenticator codes

Hi,

The Steam Mobile Authenticator uses standard TOTP passwords, but differs in that it generates a 5 character string. Is this something that could be implemented in andOTP?

For reference WinAuth has this implemented here, see this for a short write up about it. The KeeTrayTOTP plugin for KeePass2 has a somewhat more concise implementation here.

Would be convenient with one less authenticator app on ones phone :)

Device Authentication Asked Again After Configuration Change

Version: 0.2.2

Steps to Reproduce:

  1. In Settings, check "Require device credentials"

  2. Swipe the app off the overview screen, so you start from a clean slate

  3. Restart the app from the home screen, and authenticate against the device

  4. Rotate the screen

Expected Results: Nothing out of the ordinary

Actual Results: You have to authenticate again


Right now, you execute these lines for every onCreate() of MainActivity. Hence, on a configuration change, we have to re-authenticate, which IMHO is aggravating.

Some options for addressing this:

  • Only execute that code if savedInstanceState is null. This requires re-authentication after the task expires (~30 minutes or until manually removed from the overview screen).

  • Use onRetainNonConfigurationInstance, the Architecture Components' ViewModel stuff, or a retained fragment to retain your view model (entries data, a have-we-authenticated boolean, etc.) across configuration changes, retrieving it in onCreate() via getLastNonConfigurationInstance(), and only re-authenticate if we need to load the data again

  • Block configuration changes in the manifest via android:configChanges on the <activity> element. Personally, I don't recommend this option.

  • Say that this behavior is working as intended. :-)

Hide the "Add" button when scrolling down

I have over 15 entries in the app, however I can't edit the last one since the + button is in the way.

Simplest solution should be to hide the button when scrolling down or when scrolled to the bottom.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.