fix(deps): update kotlinresult to v1.1.21 (#2958)
* fix(deps): update kotlinresult to v1.1.21 * refactor: fix deprecation warnings --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
b01fddaa56
commit
48067b4a01
8 changed files with 72 additions and 102 deletions
|
@ -16,7 +16,7 @@ import app.passwordstore.injection.prefs.SettingsPreferences
|
||||||
import app.passwordstore.util.coroutines.DispatcherProvider
|
import app.passwordstore.util.coroutines.DispatcherProvider
|
||||||
import app.passwordstore.util.settings.PreferenceKeys
|
import app.passwordstore.util.settings.PreferenceKeys
|
||||||
import com.github.michaelbull.result.Result
|
import com.github.michaelbull.result.Result
|
||||||
import com.github.michaelbull.result.getAll
|
import com.github.michaelbull.result.filterValues
|
||||||
import com.github.michaelbull.result.mapBoth
|
import com.github.michaelbull.result.mapBoth
|
||||||
import java.io.ByteArrayInputStream
|
import java.io.ByteArrayInputStream
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
@ -57,7 +57,7 @@ constructor(
|
||||||
message: ByteArrayInputStream,
|
message: ByteArrayInputStream,
|
||||||
out: ByteArrayOutputStream,
|
out: ByteArrayOutputStream,
|
||||||
): Result<Unit, CryptoHandlerException> {
|
): Result<Unit, CryptoHandlerException> {
|
||||||
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.getAll()
|
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
|
||||||
val decryptionOptions = PGPDecryptOptions.Builder().build()
|
val decryptionOptions = PGPDecryptOptions.Builder().build()
|
||||||
return pgpCryptoHandler.decrypt(keys, password, message, out, decryptionOptions)
|
return pgpCryptoHandler.decrypt(keys, password, message, out, decryptionOptions)
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ constructor(
|
||||||
PGPEncryptOptions.Builder()
|
PGPEncryptOptions.Builder()
|
||||||
.withAsciiArmor(settings.getBoolean(PreferenceKeys.ASCII_ARMOR, false))
|
.withAsciiArmor(settings.getBoolean(PreferenceKeys.ASCII_ARMOR, false))
|
||||||
.build()
|
.build()
|
||||||
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.getAll()
|
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
|
||||||
return pgpCryptoHandler.encrypt(
|
return pgpCryptoHandler.encrypt(
|
||||||
keys,
|
keys,
|
||||||
content,
|
content,
|
||||||
|
|
|
@ -27,8 +27,6 @@ import app.passwordstore.util.features.Feature.EnablePGPPassphraseCache
|
||||||
import app.passwordstore.util.features.Features
|
import app.passwordstore.util.features.Features
|
||||||
import app.passwordstore.util.settings.Constants
|
import app.passwordstore.util.settings.Constants
|
||||||
import app.passwordstore.util.settings.PreferenceKeys
|
import app.passwordstore.util.settings.PreferenceKeys
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Ok
|
|
||||||
import com.github.michaelbull.result.runCatching
|
import com.github.michaelbull.result.runCatching
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
@ -214,18 +212,16 @@ class DecryptActivity : BasePGPActivity() {
|
||||||
authResult: BiometricResult,
|
authResult: BiometricResult,
|
||||||
onSuccess: suspend () -> Unit = {},
|
onSuccess: suspend () -> Unit = {},
|
||||||
) {
|
) {
|
||||||
when (val result = decryptPGPStream(passphrase, identifiers)) {
|
val result = decryptPGPStream(passphrase, identifiers)
|
||||||
is Ok -> {
|
if (result.isOk) {
|
||||||
val entry = passwordEntryFactory.create(result.value.toByteArray())
|
val entry = passwordEntryFactory.create(result.value.toByteArray())
|
||||||
passwordEntry = entry
|
passwordEntry = entry
|
||||||
createPasswordUI(entry)
|
createPasswordUI(entry)
|
||||||
startAutoDismissTimer()
|
startAutoDismissTimer()
|
||||||
onSuccess()
|
onSuccess()
|
||||||
}
|
} else {
|
||||||
is Err -> {
|
logcat(ERROR) { result.error.stackTraceToString() }
|
||||||
logcat(ERROR) { result.error.stackTraceToString() }
|
decrypt(isError = true, authResult = authResult)
|
||||||
decrypt(isError = true, authResult = authResult)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,10 +238,7 @@ class DecryptActivity : BasePGPActivity() {
|
||||||
message,
|
message,
|
||||||
outputStream,
|
outputStream,
|
||||||
)
|
)
|
||||||
when (result) {
|
if (result.isOk) outputStream else throw result.error
|
||||||
is Ok -> outputStream
|
|
||||||
is Err -> throw result.error
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun createPasswordUI(entry: PasswordEntry) =
|
private suspend fun createPasswordUI(entry: PasswordEntry) =
|
||||||
|
|
|
@ -14,8 +14,6 @@ import app.passwordstore.crypto.KeyUtils.tryGetId
|
||||||
import app.passwordstore.crypto.PGPKey
|
import app.passwordstore.crypto.PGPKey
|
||||||
import app.passwordstore.crypto.PGPKeyManager
|
import app.passwordstore.crypto.PGPKeyManager
|
||||||
import app.passwordstore.crypto.errors.KeyAlreadyExistsException
|
import app.passwordstore.crypto.errors.KeyAlreadyExistsException
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Ok
|
|
||||||
import com.github.michaelbull.result.Result
|
import com.github.michaelbull.result.Result
|
||||||
import com.github.michaelbull.result.runCatching
|
import com.github.michaelbull.result.runCatching
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
@ -69,45 +67,42 @@ class PGPKeyImportActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleImportResult(result: Result<PGPKey?, Throwable>) {
|
private fun handleImportResult(result: Result<PGPKey?, Throwable>) {
|
||||||
when (result) {
|
if (result.isOk) {
|
||||||
is Ok<PGPKey?> -> {
|
val key = result.value
|
||||||
val key = result.value
|
if (key == null) {
|
||||||
if (key == null) {
|
setResult(RESULT_CANCELED)
|
||||||
setResult(RESULT_CANCELED)
|
finish()
|
||||||
|
// This return convinces Kotlin that the control flow for `key == null` definitely
|
||||||
|
// terminates here and allows for a smart cast below.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
MaterialAlertDialogBuilder(this)
|
||||||
|
.setTitle(getString(R.string.pgp_key_import_succeeded))
|
||||||
|
.setMessage(getString(R.string.pgp_key_import_succeeded_message, tryGetId(key)))
|
||||||
|
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||||
|
setResult(RESULT_OK)
|
||||||
finish()
|
finish()
|
||||||
// This return convinces Kotlin that the control flow for `key == null` definitely
|
|
||||||
// terminates here and allows for a smart cast below.
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
.setCancelable(false)
|
||||||
|
.show()
|
||||||
|
} else {
|
||||||
|
if (result.error is KeyAlreadyExistsException && lastBytes != null) {
|
||||||
MaterialAlertDialogBuilder(this)
|
MaterialAlertDialogBuilder(this)
|
||||||
.setTitle(getString(R.string.pgp_key_import_succeeded))
|
.setTitle(getString(R.string.pgp_key_import_failed))
|
||||||
.setMessage(getString(R.string.pgp_key_import_succeeded_message, tryGetId(key)))
|
.setMessage(getString(R.string.pgp_key_import_failed_replace_message))
|
||||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
.setPositiveButton(R.string.dialog_yes) { _, _ ->
|
||||||
setResult(RESULT_OK)
|
handleImportResult(runCatching { importKey(lastBytes!!, replace = true) })
|
||||||
finish()
|
|
||||||
}
|
}
|
||||||
|
.setNegativeButton(R.string.dialog_no) { _, _ -> finish() }
|
||||||
|
.setCancelable(false)
|
||||||
|
.show()
|
||||||
|
} else {
|
||||||
|
MaterialAlertDialogBuilder(this)
|
||||||
|
.setTitle(getString(R.string.pgp_key_import_failed))
|
||||||
|
.setMessage(result.error.message)
|
||||||
|
.setPositiveButton(android.R.string.ok) { _, _ -> finish() }
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.show()
|
.show()
|
||||||
}
|
|
||||||
is Err<Throwable> -> {
|
|
||||||
if (result.error is KeyAlreadyExistsException && lastBytes != null) {
|
|
||||||
MaterialAlertDialogBuilder(this)
|
|
||||||
.setTitle(getString(R.string.pgp_key_import_failed))
|
|
||||||
.setMessage(getString(R.string.pgp_key_import_failed_replace_message))
|
|
||||||
.setPositiveButton(R.string.dialog_yes) { _, _ ->
|
|
||||||
handleImportResult(runCatching { importKey(lastBytes!!, replace = true) })
|
|
||||||
}
|
|
||||||
.setNegativeButton(R.string.dialog_no) { _, _ -> finish() }
|
|
||||||
.setCancelable(false)
|
|
||||||
.show()
|
|
||||||
} else {
|
|
||||||
MaterialAlertDialogBuilder(this)
|
|
||||||
.setTitle(getString(R.string.pgp_key_import_failed))
|
|
||||||
.setMessage(result.error.message)
|
|
||||||
.setPositiveButton(android.R.string.ok) { _, _ -> finish() }
|
|
||||||
.setCancelable(false)
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
package app.passwordstore.util.extensions
|
package app.passwordstore.util.extensions
|
||||||
|
|
||||||
import app.passwordstore.data.repo.PasswordRepository
|
import app.passwordstore.data.repo.PasswordRepository
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Result
|
|
||||||
import com.github.michaelbull.result.getOrElse
|
import com.github.michaelbull.result.getOrElse
|
||||||
import com.github.michaelbull.result.runCatching
|
import com.github.michaelbull.result.runCatching
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -68,8 +66,3 @@ fun <T> unsafeLazy(initializer: () -> T) = lazy(LazyThreadSafetyMode.NONE) { ini
|
||||||
|
|
||||||
/** A convenience extension to turn a [Throwable] with a message into a loggable string. */
|
/** A convenience extension to turn a [Throwable] with a message into a loggable string. */
|
||||||
fun Throwable.asLog(message: String): String = "$message\n${asLog()}"
|
fun Throwable.asLog(message: String): String = "$message\n${asLog()}"
|
||||||
|
|
||||||
/** Extension on [Result] that returns if the type is [Err] */
|
|
||||||
fun <V, E> Result<V, E>.isErr(): Boolean {
|
|
||||||
return this is Err<E>
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,9 +8,8 @@ import androidx.lifecycle.viewModelScope
|
||||||
import app.passwordstore.crypto.KeyUtils
|
import app.passwordstore.crypto.KeyUtils
|
||||||
import app.passwordstore.crypto.PGPIdentifier
|
import app.passwordstore.crypto.PGPIdentifier
|
||||||
import app.passwordstore.crypto.PGPKeyManager
|
import app.passwordstore.crypto.PGPKeyManager
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Ok
|
|
||||||
import com.github.michaelbull.result.map
|
import com.github.michaelbull.result.map
|
||||||
|
import com.github.michaelbull.result.onSuccess
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
@ -28,15 +27,10 @@ class PGPKeyListViewModel @Inject constructor(private val keyManager: PGPKeyMana
|
||||||
|
|
||||||
fun updateKeySet() {
|
fun updateKeySet() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
when (
|
keyManager
|
||||||
val result =
|
.getAllKeys()
|
||||||
keyManager.getAllKeys().map { keys ->
|
.map { keys -> keys.mapNotNull { key -> KeyUtils.tryGetEmail(key) } }
|
||||||
keys.mapNotNull { key -> KeyUtils.tryGetEmail(key) }
|
.onSuccess { keys = it.toPersistentList() }
|
||||||
}
|
|
||||||
) {
|
|
||||||
is Ok -> keys = result.value.toPersistentList()
|
|
||||||
is Err -> TODO()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,6 @@ import app.passwordstore.crypto.errors.KeyAlreadyExistsException
|
||||||
import app.passwordstore.crypto.errors.KeyNotFoundException
|
import app.passwordstore.crypto.errors.KeyNotFoundException
|
||||||
import app.passwordstore.crypto.errors.NoKeysAvailableException
|
import app.passwordstore.crypto.errors.NoKeysAvailableException
|
||||||
import app.passwordstore.crypto.errors.UnusableKeyException
|
import app.passwordstore.crypto.errors.UnusableKeyException
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Ok
|
|
||||||
import com.github.michaelbull.result.unwrap
|
import com.github.michaelbull.result.unwrap
|
||||||
import com.github.michaelbull.result.unwrapError
|
import com.github.michaelbull.result.unwrapError
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -18,8 +16,8 @@ import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertIs
|
import kotlin.test.assertIs
|
||||||
import kotlin.test.assertNotEquals
|
import kotlin.test.assertNotEquals
|
||||||
import kotlin.test.assertNotNull
|
import kotlin.test.assertNotNull
|
||||||
|
import kotlin.test.assertTrue
|
||||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||||
import kotlinx.coroutines.test.TestScope
|
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.rules.TemporaryFolder
|
import org.junit.rules.TemporaryFolder
|
||||||
|
@ -28,7 +26,6 @@ class PGPKeyManagerTest {
|
||||||
|
|
||||||
@get:Rule val temporaryFolder: TemporaryFolder = TemporaryFolder()
|
@get:Rule val temporaryFolder: TemporaryFolder = TemporaryFolder()
|
||||||
private val dispatcher = StandardTestDispatcher()
|
private val dispatcher = StandardTestDispatcher()
|
||||||
private val scope = TestScope(dispatcher)
|
|
||||||
private val filesDir by unsafeLazy { temporaryFolder.root }
|
private val filesDir by unsafeLazy { temporaryFolder.root }
|
||||||
private val keysDir by unsafeLazy { File(filesDir, PGPKeyManager.KEY_DIR_NAME) }
|
private val keysDir by unsafeLazy { File(filesDir, PGPKeyManager.KEY_DIR_NAME) }
|
||||||
private val keyManager by unsafeLazy { PGPKeyManager(filesDir.absolutePath, dispatcher) }
|
private val keyManager by unsafeLazy { PGPKeyManager(filesDir.absolutePath, dispatcher) }
|
||||||
|
@ -170,24 +167,24 @@ class PGPKeyManagerTest {
|
||||||
@Test
|
@Test
|
||||||
fun replaceSecretKeyWithPublicKey() =
|
fun replaceSecretKeyWithPublicKey() =
|
||||||
runTest(dispatcher) {
|
runTest(dispatcher) {
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(secretKey))
|
assertTrue(keyManager.addKey(secretKey).isOk)
|
||||||
assertIs<Err<KeyAlreadyExistsException>>(keyManager.addKey(publicKey))
|
assertTrue(keyManager.addKey(publicKey).isErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun replacePublicKeyWithSecretKey() =
|
fun replacePublicKeyWithSecretKey() =
|
||||||
runTest(dispatcher) {
|
runTest(dispatcher) {
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(publicKey))
|
assertTrue(keyManager.addKey(publicKey).isOk)
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(secretKey))
|
assertTrue(keyManager.addKey(secretKey).isOk)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun replacePublicKeyWithPublicKey() =
|
fun replacePublicKeyWithPublicKey() =
|
||||||
runTest(dispatcher) {
|
runTest(dispatcher) {
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(publicKey))
|
assertTrue(keyManager.addKey(publicKey).isOk)
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(publicKey))
|
assertTrue(keyManager.addKey(publicKey).isOk)
|
||||||
val allKeys = keyManager.getAllKeys()
|
val allKeys = keyManager.getAllKeys()
|
||||||
assertIs<Ok<List<PGPKey>>>(allKeys)
|
assertTrue(allKeys.isOk)
|
||||||
assertEquals(1, allKeys.value.size)
|
assertEquals(1, allKeys.value.size)
|
||||||
val key = allKeys.value[0]
|
val key = allKeys.value[0]
|
||||||
assertContentEquals(publicKey.contents, key.contents)
|
assertContentEquals(publicKey.contents, key.contents)
|
||||||
|
@ -196,8 +193,8 @@ class PGPKeyManagerTest {
|
||||||
@Test
|
@Test
|
||||||
fun replaceSecretKeyWithSecretKey() =
|
fun replaceSecretKeyWithSecretKey() =
|
||||||
runTest(dispatcher) {
|
runTest(dispatcher) {
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(secretKey))
|
assertTrue(keyManager.addKey(secretKey).isOk)
|
||||||
assertIs<Err<KeyAlreadyExistsException>>(keyManager.addKey(secretKey))
|
assertTrue(keyManager.addKey(secretKey).isErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -207,11 +204,11 @@ class PGPKeyManagerTest {
|
||||||
PGPKey(this::class.java.classLoader.getResource("alice_owner@example_com")!!.readBytes())
|
PGPKey(this::class.java.classLoader.getResource("alice_owner@example_com")!!.readBytes())
|
||||||
val bobby =
|
val bobby =
|
||||||
PGPKey(this::class.java.classLoader.getResource("bobby_owner@example_com")!!.readBytes())
|
PGPKey(this::class.java.classLoader.getResource("bobby_owner@example_com")!!.readBytes())
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(alice))
|
assertTrue(keyManager.addKey(alice).isOk)
|
||||||
assertIs<Ok<PGPKey>>(keyManager.addKey(bobby))
|
assertTrue(keyManager.addKey(bobby).isOk)
|
||||||
|
|
||||||
keyManager.getAllKeys().apply {
|
keyManager.getAllKeys().apply {
|
||||||
assertIs<Ok<List<PGPKey>>>(this)
|
assertTrue(this.isOk)
|
||||||
assertEquals(2, this.value.size)
|
assertEquals(2, this.value.size)
|
||||||
}
|
}
|
||||||
val longKeyIds =
|
val longKeyIds =
|
||||||
|
@ -228,8 +225,8 @@ class PGPKeyManagerTest {
|
||||||
for (idCollection in arrayOf(longKeyIds, userIds)) {
|
for (idCollection in arrayOf(longKeyIds, userIds)) {
|
||||||
val alice1 = keyManager.getKeyById(idCollection[0])
|
val alice1 = keyManager.getKeyById(idCollection[0])
|
||||||
val bobby1 = keyManager.getKeyById(idCollection[1])
|
val bobby1 = keyManager.getKeyById(idCollection[1])
|
||||||
assertIs<Ok<PGPKey>>(alice1)
|
assertTrue(alice1.isOk)
|
||||||
assertIs<Ok<PGPKey>>(bobby1)
|
assertTrue(bobby1.isOk)
|
||||||
assertNotEquals(alice1.value.contents, bobby1.value.contents)
|
assertNotEquals(alice1.value.contents, bobby1.value.contents)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,6 @@ package app.passwordstore.crypto
|
||||||
import app.passwordstore.crypto.CryptoConstants.KEY_PASSPHRASE
|
import app.passwordstore.crypto.CryptoConstants.KEY_PASSPHRASE
|
||||||
import app.passwordstore.crypto.CryptoConstants.PLAIN_TEXT
|
import app.passwordstore.crypto.CryptoConstants.PLAIN_TEXT
|
||||||
import app.passwordstore.crypto.errors.IncorrectPassphraseException
|
import app.passwordstore.crypto.errors.IncorrectPassphraseException
|
||||||
import com.github.michaelbull.result.Err
|
|
||||||
import com.github.michaelbull.result.Ok
|
|
||||||
import com.github.michaelbull.result.getError
|
import com.github.michaelbull.result.getError
|
||||||
import com.google.testing.junit.testparameterinjector.TestParameter
|
import com.google.testing.junit.testparameterinjector.TestParameter
|
||||||
import com.google.testing.junit.testparameterinjector.TestParameterInjector
|
import com.google.testing.junit.testparameterinjector.TestParameterInjector
|
||||||
|
@ -48,7 +46,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
ciphertextStream,
|
ciphertextStream,
|
||||||
PGPEncryptOptions.Builder().build(),
|
PGPEncryptOptions.Builder().build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(encryptRes)
|
assertTrue(encryptRes.isOk)
|
||||||
val plaintextStream = ByteArrayOutputStream()
|
val plaintextStream = ByteArrayOutputStream()
|
||||||
val decryptRes =
|
val decryptRes =
|
||||||
cryptoHandler.decrypt(
|
cryptoHandler.decrypt(
|
||||||
|
@ -58,7 +56,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
plaintextStream,
|
plaintextStream,
|
||||||
PGPDecryptOptions.Builder().build(),
|
PGPDecryptOptions.Builder().build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(decryptRes)
|
assertTrue(decryptRes.isOk)
|
||||||
assertEquals(PLAIN_TEXT, plaintextStream.toString(Charsets.UTF_8))
|
assertEquals(PLAIN_TEXT, plaintextStream.toString(Charsets.UTF_8))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +70,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
ciphertextStream,
|
ciphertextStream,
|
||||||
PGPEncryptOptions.Builder().build(),
|
PGPEncryptOptions.Builder().build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(encryptRes)
|
assertTrue(encryptRes.isOk)
|
||||||
val plaintextStream = ByteArrayOutputStream()
|
val plaintextStream = ByteArrayOutputStream()
|
||||||
val result =
|
val result =
|
||||||
cryptoHandler.decrypt(
|
cryptoHandler.decrypt(
|
||||||
|
@ -82,7 +80,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
plaintextStream,
|
plaintextStream,
|
||||||
PGPDecryptOptions.Builder().build(),
|
PGPDecryptOptions.Builder().build(),
|
||||||
)
|
)
|
||||||
assertIs<Err<Throwable>>(result)
|
assertTrue(result.isErr)
|
||||||
assertIs<IncorrectPassphraseException>(result.getError())
|
assertIs<IncorrectPassphraseException>(result.getError())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +94,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
ciphertextStream,
|
ciphertextStream,
|
||||||
PGPEncryptOptions.Builder().withAsciiArmor(true).build(),
|
PGPEncryptOptions.Builder().withAsciiArmor(true).build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(encryptRes)
|
assertTrue(encryptRes.isOk)
|
||||||
val ciphertext = ciphertextStream.toString(Charsets.UTF_8)
|
val ciphertext = ciphertextStream.toString(Charsets.UTF_8)
|
||||||
assertContains(ciphertext, "Version: PGPainless")
|
assertContains(ciphertext, "Version: PGPainless")
|
||||||
assertContains(ciphertext, "-----BEGIN PGP MESSAGE-----")
|
assertContains(ciphertext, "-----BEGIN PGP MESSAGE-----")
|
||||||
|
@ -118,7 +116,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
ciphertextStream,
|
ciphertextStream,
|
||||||
PGPEncryptOptions.Builder().withAsciiArmor(true).build(),
|
PGPEncryptOptions.Builder().withAsciiArmor(true).build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(encryptRes)
|
assertTrue(encryptRes.isOk)
|
||||||
val message = ciphertextStream.toByteArray().decodeToString()
|
val message = ciphertextStream.toByteArray().decodeToString()
|
||||||
val info = MessageInspector.determineEncryptionInfoForMessage(message)
|
val info = MessageInspector.determineEncryptionInfoForMessage(message)
|
||||||
assertTrue(info.isEncrypted)
|
assertTrue(info.isEncrypted)
|
||||||
|
@ -135,7 +133,7 @@ class PGPainlessCryptoHandlerTest {
|
||||||
plaintextStream,
|
plaintextStream,
|
||||||
PGPDecryptOptions.Builder().build(),
|
PGPDecryptOptions.Builder().build(),
|
||||||
)
|
)
|
||||||
assertIs<Ok<Unit>>(res)
|
assertTrue(res.isOk)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ coroutines = "1.8.0"
|
||||||
flowbinding = "1.2.0"
|
flowbinding = "1.2.0"
|
||||||
hilt = "2.51"
|
hilt = "2.51"
|
||||||
kotlin = "1.9.23"
|
kotlin = "1.9.23"
|
||||||
kotlinResult = "1.1.20"
|
kotlinResult = "1.1.21"
|
||||||
lifecycle = "2.7.0"
|
lifecycle = "2.7.0"
|
||||||
moshi = "1.15.1"
|
moshi = "1.15.1"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue