Skip to content

//lcp/org.readium.r2.lcp.auth/LcpDialogAuthentication/retrievePassphrase

retrievePassphrase

[androidJvm]\ open suspend override fun retrievePassphrase(license: LcpAuthenticating.AuthenticatedLicense, reason: LcpAuthenticating.AuthenticationReason, allowUserInteraction: Boolean, sender: Any?): String?

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

androidJvm

license Information to show to the user about the license being opened.
reason Reason why the passphrase is requested. It should be used to prompt the user.
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.