commonMain.net.folivo.trixnity.client.crypto.createCryptoModule.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trixnity-client-jvm Show documentation
Show all versions of trixnity-client-jvm Show documentation
Multiplatform Kotlin SDK for matrix-protocol
package net.folivo.trixnity.client.crypto
import net.folivo.trixnity.clientserverapi.client.MatrixClientServerApiClient
import net.folivo.trixnity.core.EventHandler
import net.folivo.trixnity.crypto.olm.*
import net.folivo.trixnity.crypto.sign.SignService
import net.folivo.trixnity.crypto.sign.SignServiceImpl
import net.folivo.trixnity.crypto.sign.SignServiceStore
import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
import org.koin.core.qualifier.named
import org.koin.dsl.module
fun createCryptoModule() = module {
singleOf(::ClientOlmKeysChangeEmitter) { bind() }
singleOf(::ClientSignServiceStore) { bind() }
singleOf(::SignServiceImpl) { bind() }
singleOf(::ClientOlmEventHandlerRequestHandler) { bind() }
singleOf(::ClientOlmEncryptionServiceRequestHandler) { bind() }
singleOf(::ClientOlmStore) { bind() }
singleOf(::OlmEncryptionServiceImpl) { bind() }
singleOf(::OlmDecrypterImpl) { bind() }
single(named()) {
OlmEventHandler(get(), get().sync, get(), get(), get(), get(), get(), get())
}
}