Interface PasswordProvider

All Superinterfaces:
CryptoProvider
All Known Implementing Classes:
CachedPasswordProvider, CmdLinePasswordProvider, PopupGUIPasswordProvider

public interface PasswordProvider extends CryptoProvider
Instances of this interface provide passwords to decrypt files.

Instances are typically not called directly, instead are used by a CryptoSession along with other provider instances to provide a balanced breakfast.

Multiple passwords can be returned for each request with the assumption that the consumer of the values can test and validate each one to find the correct value. Conversely, it would not be appropriate to use this to get a password for a login service that may lock the requester out after a small number of failed attempts.

TODO: add negative password result that can be persisted / cached so user isn't spammed with requests for an unknown password during batch / recursive operations.

  • Method Details

    • getPasswordsFor

      Iterator<Password> getPasswordsFor(FSRL fsrl, String prompt, CryptoProvider.Session session)
      Returns a sequence of passwords (ordered by quality) that may apply to the specified file.
      Parameters:
      fsrl - FSRL path to the password protected file
      prompt - optional prompt that may be displayed to a user
      session - a place to hold state values that persist across related queries
      Returns:
      Iterator of possible passwords