If the decrypted entry in the store contains an OTP, function createPasswordUI() becomes a blocking function. In this case, startAutoDismissTimer() and onSuccess() that come after createPasswordUI() in function decryptWithPassphrase() are not reached and executed. As a consequence, passphrase caching is not carried out and the passphrase must be entered again in order to decrypt another entry in the store.
The bug can be reproduced as follows:
Start APS, ensure that passphrase caching and auto-clean on screen-off are enabled.
Select a store entry with an OTP, unlock the cache with the screen-lock PIN and decrypt the entry with your passphrase
Select another (or the same) entry from the password list
Enter the PIN --> APS asks again for your passphrase, which should not be necessary if the previously entered passphrase were cached properly.
If the decrypted entry in the store contains an OTP, function
createPasswordUI()
becomes a blocking function. In this case,startAutoDismissTimer()
andonSuccess()
that come aftercreatePasswordUI()
in functiondecryptWithPassphrase()
are not reached and executed. As a consequence, passphrase caching is not carried out and the passphrase must be entered again in order to decrypt another entry in the store.The bug can be reproduced as follows:
This PR tries to fix the issue.