Skip to content
This repository has been archived by the owner on Oct 15, 2024. It is now read-only.

Commit

Permalink
Reapply "refactor(app): inline pointless methods in CryptoRepository"
Browse files Browse the repository at this point in the history
This reverts commit cb22561.
  • Loading branch information
msfjarvis committed Sep 28, 2024
1 parent 04f4b98 commit 7e1ed55
Showing 1 changed file with 17 additions and 33 deletions.
50 changes: 17 additions & 33 deletions app/src/main/java/app/passwordstore/data/crypto/CryptoRepository.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ import app.passwordstore.crypto.PGPEncryptOptions
import app.passwordstore.crypto.PGPIdentifier
import app.passwordstore.crypto.PGPKeyManager
import app.passwordstore.crypto.PGPainlessCryptoHandler
import app.passwordstore.crypto.errors.CryptoHandlerException
import app.passwordstore.injection.prefs.SettingsPreferences
import app.passwordstore.util.coroutines.DispatcherProvider
import app.passwordstore.util.settings.PreferenceKeys
import com.github.michaelbull.result.Result
import com.github.michaelbull.result.filterValues
import com.github.michaelbull.result.map
import com.github.michaelbull.result.mapBoth
Expand All @@ -39,48 +37,34 @@ constructor(
}
}

suspend fun decrypt(
password: String,
identities: List<PGPIdentifier>,
message: ByteArrayInputStream,
out: ByteArrayOutputStream,
) =
withContext(dispatcherProvider.io()) {
decryptPgp(password, identities, message, out).map { out }
}

suspend fun isPasswordProtected(identifiers: List<PGPIdentifier>): Boolean {
val keys = identifiers.map { pgpKeyManager.getKeyById(it) }.filterValues()
return pgpCryptoHandler.isPassphraseProtected(keys)
}

suspend fun encrypt(
identities: List<PGPIdentifier>,
content: ByteArrayInputStream,
out: ByteArrayOutputStream,
) = withContext(dispatcherProvider.io()) { encryptPgp(identities, content, out).map { out } }

private suspend fun decryptPgp(
suspend fun decrypt(
password: String,
identities: List<PGPIdentifier>,
message: ByteArrayInputStream,
out: ByteArrayOutputStream,
): Result<Unit, CryptoHandlerException> {
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
val decryptionOptions = PGPDecryptOptions.Builder().build()
return pgpCryptoHandler.decrypt(keys, password, message, out, decryptionOptions)
}
) =
withContext(dispatcherProvider.io()) {
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
val decryptionOptions = PGPDecryptOptions.Builder().build()
pgpCryptoHandler.decrypt(keys, password, message, out, decryptionOptions).map { out }
}

private suspend fun encryptPgp(
suspend fun encrypt(
identities: List<PGPIdentifier>,
content: ByteArrayInputStream,
out: ByteArrayOutputStream,
): Result<Unit, CryptoHandlerException> {
val encryptionOptions =
PGPEncryptOptions.Builder()
.withAsciiArmor(settings.getBoolean(PreferenceKeys.ASCII_ARMOR, false))
.build()
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
return pgpCryptoHandler.encrypt(keys, content, out, encryptionOptions)
}
) =
withContext(dispatcherProvider.io()) {
val encryptionOptions =
PGPEncryptOptions.Builder()
.withAsciiArmor(settings.getBoolean(PreferenceKeys.ASCII_ARMOR, false))
.build()
val keys = identities.map { id -> pgpKeyManager.getKeyById(id) }.filterValues()
pgpCryptoHandler.encrypt(keys, content, out, encryptionOptions).map { out }
}
}

0 comments on commit 7e1ed55

Please sign in to comment.