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 Detail

      • getPasswordsFor

        java.util.Iterator<PasswordValue> getPasswordsFor​(FSRL fsrl,
                                                          java.lang.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