summaryrefslogtreecommitdiff
path: root/crypto-pgpainless/src/main
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-07-18 17:08:49 +0530
committerHarsh Shandilya <me@msfjarvis.dev>2022-07-18 17:08:49 +0530
commitc0f04bec778e8150fd0e783213a5b5478b25fd1b (patch)
tree094f0389b5a86ee78ead64a81bd4f37166517b65 /crypto-pgpainless/src/main
parent15f2489550e0503b429cc243a31823fd843d4959 (diff)
Rework key deletion to accept an identifier
Diffstat (limited to 'crypto-pgpainless/src/main')
-rw-r--r--crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt7
1 files changed, 3 insertions, 4 deletions
diff --git a/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt b/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt
index b834164d..be2ec474 100644
--- a/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt
+++ b/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt
@@ -17,6 +17,7 @@ import app.passwordstore.crypto.errors.KeyNotFoundException
import app.passwordstore.crypto.errors.NoKeysAvailableException
import app.passwordstore.util.coroutines.runSuspendCatching
import com.github.michaelbull.result.Result
+import com.github.michaelbull.result.unwrap
import java.io.File
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
@@ -71,17 +72,15 @@ constructor(
}
}
- override suspend fun removeKey(key: PGPKey): Result<PGPKey, Throwable> =
+ override suspend fun removeKey(identifier: GpgIdentifier): Result<Unit, Throwable> =
withContext(dispatcher) {
runSuspendCatching {
if (!keyDirExists()) throw KeyDirectoryUnavailableException
- if (tryParseKeyring(key) == null) throw InvalidKeyException
+ val key = getKeyById(identifier).unwrap()
val keyFile = File(keyDir, "${tryGetId(key)}.$KEY_EXTENSION")
if (keyFile.exists()) {
if (!keyFile.delete()) throw KeyDeletionFailedException
}
-
- key
}
}