-
- All Implemented Interfaces:
-
org.readium.r2.lcp.LcpAuthenticating
public final class LcpPassphraseAuthentication implements LcpAuthenticating
An LcpAuthenticating implementation which can directly use a provided clear or hashed passphrase.
If the provided passphrase is incorrect, the given fallback authentication is used.
-
-
Constructor Summary
Constructors Constructor Description LcpPassphraseAuthentication(String passphrase, LcpAuthenticating fallback)
-
Method Summary
Modifier and Type Method Description StringretrievePassphrase(LcpAuthenticating.AuthenticatedLicense license, LcpAuthenticating.AuthenticationReason reason, Boolean allowUserInteraction, Object sender)Retrieves the passphrase used to decrypt the given license. -
-
Constructor Detail
-
LcpPassphraseAuthentication
LcpPassphraseAuthentication(String passphrase, LcpAuthenticating fallback)
-
-
Method Detail
-
retrievePassphrase
String retrievePassphrase(LcpAuthenticating.AuthenticatedLicense license, LcpAuthenticating.AuthenticationReason reason, Boolean allowUserInteraction, Object sender)
Retrieves the passphrase used to decrypt the given license.
If allowUserInteraction is true, the reading app can prompt the user to enter the passphrase. Otherwise, use a background retrieval method (e.g. web service) or return null.
The returned passphrase can be clear or already hashed.
You can implement an asynchronous pop-up with callbacks using
suspendCoroutine:suspendCoroutine<String?> { cont -> cancelButton.setOnClickListener { cont.resume(null) } okButton.setOnClickListener { cont.resume(passwordEditText.text.toString()) } // show pop-up... }- Parameters:
license- Information to show to the user about the license being opened.reason- Reason why the passphrase is requested.allowUserInteraction- Indicates whether the user can be prompted for their passphrase.sender- Free object that can be used by reading apps to give some UX context when presenting dialogs.
-
-
-
-