aboutsummaryrefslogtreecommitdiffstats
path: root/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2021-10-23 17:02:50 +0530
committerGitHub <noreply@github.com>2021-10-23 17:02:50 +0530
commitaac74ae4515aa1d746f46287029441f5a945c98e (patch)
tree9d23e06592ecd884d6b58dd089692d9e4224a3f9 /crypto-common/src/main/kotlin/dev/msfjarvis/aps/data
parent21c8653e6815ca34574e783a5ce7ac783b188228 (diff)
downloadHardenedPass-aac74ae4515aa1d746f46287029441f5a945c98e.tar.gz
HardenedPass-aac74ae4515aa1d746f46287029441f5a945c98e.zip
Switch new PGP backend to use PGPainless (#1522)
* crypto-pgpainless: init * crypto-pgpainless: add an opinionated CryptoHandler impl * app: migrate to crypto-pgpainless * crypto-pgp: remove * github: remove now unused instrumentation tests job * crypto-common: fixup package names * wip(crypto-pgpainless): add `PGPKeyPair` and `PGPKeyManager` Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> (cherry picked from commit 02d07e9e797a8600cc8c534a731dfffcc44cfdde) * crypto-pgpainless: use hex-encoded key IDs * crypto-pgpainless: replace legacy Gopenpgp-generated key file * crypto-pgpainless: fix CryptoConstants source set * crypto-pgpainless: fix tests * crypto-pgpainless: reinstate PGPKeyManager tests Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
Diffstat (limited to 'crypto-common/src/main/kotlin/dev/msfjarvis/aps/data')
-rw-r--r--crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoException.kt19
-rw-r--r--crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoHandler.kt25
-rw-r--r--crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyManager.kt19
-rw-r--r--crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyPair.kt14
4 files changed, 0 insertions, 77 deletions
diff --git a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoException.kt b/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoException.kt
deleted file mode 100644
index 6a73d381..00000000
--- a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoException.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package dev.msfjarvis.aps.data.crypto
-
-public sealed class CryptoException(message: String? = null) : Exception(message)
-
-public sealed class KeyPairException(message: String? = null) : CryptoException(message) {
- public object PrivateKeyUnavailableException :
- KeyPairException("Key object does not have a private sub-key")
-}
-
-public sealed class KeyManagerException(message: String? = null) : CryptoException(message) {
- public object NoKeysAvailableException : KeyManagerException("No keys were found")
- public object KeyDirectoryUnavailableException :
- KeyManagerException("Key directory does not exist")
- public object KeyDeletionFailedException : KeyManagerException("Couldn't delete the key file")
- public class KeyNotFoundException(keyId: String) :
- KeyManagerException("No key found with id: $keyId")
- public class KeyAlreadyExistsException(keyId: String) :
- KeyManagerException("Pre-existing key was found for $keyId but 'replace' is set to false")
-}
diff --git a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoHandler.kt b/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoHandler.kt
deleted file mode 100644
index 453613a4..00000000
--- a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/CryptoHandler.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-package dev.msfjarvis.aps.data.crypto
-
-/** Generic interface to implement cryptographic operations on top of. */
-public interface CryptoHandler {
-
- /**
- * Decrypt the given [ciphertext] using a [privateKey] and [passphrase], returning a [ByteArray]
- * corresponding to the decrypted plaintext.
- */
- public fun decrypt(privateKey: String, passphrase: ByteArray, ciphertext: ByteArray): ByteArray
-
- /**
- * Encrypt the given [plaintext] to the provided [publicKey], returning the encrypted ciphertext
- * as a [ByteArray]
- */
- public fun encrypt(publicKey: String, plaintext: ByteArray): ByteArray
-
- /** Given a [fileName], return whether this instance can handle it. */
- public fun canHandle(fileName: String): Boolean
-}
diff --git a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyManager.kt b/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyManager.kt
deleted file mode 100644
index b5ba881e..00000000
--- a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyManager.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-package dev.msfjarvis.aps.data.crypto
-
-import com.github.michaelbull.result.Result
-
-public interface KeyManager<T : KeyPair> {
-
- public suspend fun addKey(key: T, replace: Boolean = false): Result<T, Throwable>
- public suspend fun removeKey(key: T): Result<T, Throwable>
- public suspend fun getKeyById(id: String): Result<T, Throwable>
- public suspend fun getAllKeys(): Result<List<T>, Throwable>
-
- /** Given a [fileName], return whether this instance can handle it. */
- public fun canHandle(fileName: String): Boolean
-}
diff --git a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyPair.kt b/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyPair.kt
deleted file mode 100644
index e2362612..00000000
--- a/crypto-common/src/main/kotlin/dev/msfjarvis/aps/data/crypto/KeyPair.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-package dev.msfjarvis.aps.data.crypto
-
-/** Defines expectations for a keypair used in public key cryptography. */
-public interface KeyPair {
-
- public fun getPrivateKey(): ByteArray
- public fun getPublicKey(): ByteArray
- public fun getKeyId(): String
-}