JceksKeyStoreService.kt
package de.pflugradts.passbird.adapter.keystore
import de.pflugradts.passbird.application.KeyStoreAdapterPort
import de.pflugradts.passbird.application.util.SystemOperation
import de.pflugradts.passbird.domain.model.shell.PlainShell
import de.pflugradts.passbird.domain.model.shell.Shell
import java.nio.file.Path
class JceksKeyStoreService constructor(
private val systemOperation: SystemOperation,
private val keyStoreFactory: KeyStoreFactory,
) : KeyStoreAdapterPort {
private val keyStorePersistence = KeyStorePersistence(systemOperation)
override fun loadKey(password: PlainShell, path: Path) = keyStorePersistence.loadKey(
{ keyStoreFactory.jceksInstance },
password,
path,
)
override fun storeKey(password: PlainShell, path: Path) =
keyStorePersistence.storeKey({ keyStoreFactory.jceksInstance }, password, path)
override fun storeExistingKey(key: Shell, password: PlainShell, path: Path) =
keyStorePersistence.storeExistingKey({ keyStoreFactory.jceksInstance }, key, password, path)
}