From 0c8bed4e546ac248be118b41cfa4b002a357e12f Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 5 Jul 2023 02:40:31 +0530 Subject: feat(crypto-pgpainless): run usability test when adding keys --- .../src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'crypto-pgpainless/src/main') 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 a34d0379..aed1acf2 100644 --- a/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt +++ b/crypto-pgpainless/src/main/kotlin/app/passwordstore/crypto/PGPKeyManager.kt @@ -7,6 +7,7 @@ package app.passwordstore.crypto import androidx.annotation.VisibleForTesting +import app.passwordstore.crypto.KeyUtils.isKeyUsable import app.passwordstore.crypto.KeyUtils.tryGetId import app.passwordstore.crypto.KeyUtils.tryParseKeyring import app.passwordstore.crypto.errors.InvalidKeyException @@ -15,6 +16,7 @@ import app.passwordstore.crypto.errors.KeyDeletionFailedException import app.passwordstore.crypto.errors.KeyDirectoryUnavailableException import app.passwordstore.crypto.errors.KeyNotFoundException import app.passwordstore.crypto.errors.NoKeysAvailableException +import app.passwordstore.crypto.errors.UnusableKeyException import app.passwordstore.util.coroutines.runSuspendCatching import com.github.michaelbull.result.Result import com.github.michaelbull.result.unwrap @@ -42,6 +44,7 @@ constructor( runSuspendCatching { if (!keyDirExists()) throw KeyDirectoryUnavailableException val incomingKeyRing = tryParseKeyring(key) ?: throw InvalidKeyException + if (!isKeyUsable(key)) throw UnusableKeyException val keyFile = File(keyDir, "${tryGetId(key)}.$KEY_EXTENSION") if (keyFile.exists()) { val existingKeyBytes = keyFile.readBytes() -- cgit v1.2.3