Switch the FFI bindings to use the SQLite cryptostore
This commit is contained in:
parent
d680b331d0
commit
03aba95e1e
|
@ -2978,6 +2978,8 @@ dependencies = [
|
|||
"futures-util",
|
||||
"log-panics",
|
||||
"matrix-sdk",
|
||||
"matrix-sdk-sled",
|
||||
"matrix-sdk-sqlite",
|
||||
"mime",
|
||||
"once_cell",
|
||||
"opentelemetry",
|
||||
|
|
|
@ -23,6 +23,8 @@ eyeball-im = { workspace = true }
|
|||
extension-trait = "1.0.1"
|
||||
futures-core = "0.3.17"
|
||||
futures-util = { version = "0.3.17", default-features = false }
|
||||
matrix-sdk-sqlite = { path = "../../crates/matrix-sdk-sqlite", features = ["crypto-store"] }
|
||||
matrix-sdk-sled = { path = "../../crates/matrix-sdk-sled" }
|
||||
mime = "0.3.16"
|
||||
# FIXME: we currently can't feature flag anything in the api.udl, therefore we must enforce experimental-sliding-sync being exposed here..
|
||||
# see https://github.com/matrix-org/matrix-rust-sdk/issues/1014
|
||||
|
@ -59,7 +61,6 @@ features = [
|
|||
"experimental-timeline",
|
||||
"e2e-encryption",
|
||||
"markdown",
|
||||
"sled",
|
||||
"socks",
|
||||
"rustls-tls",
|
||||
]
|
||||
|
@ -74,6 +75,5 @@ features = [
|
|||
"e2e-encryption",
|
||||
"markdown",
|
||||
"native-tls",
|
||||
"sled",
|
||||
"socks",
|
||||
]
|
||||
|
|
|
@ -2,6 +2,7 @@ use std::{fs, path::PathBuf, sync::Arc};
|
|||
|
||||
use anyhow::anyhow;
|
||||
use matrix_sdk::{
|
||||
config::StoreConfig,
|
||||
ruma::{
|
||||
api::{error::UnknownVersionError, MatrixVersion},
|
||||
ServerName, UserId,
|
||||
|
@ -102,7 +103,24 @@ impl ClientBuilder {
|
|||
let data_path = PathBuf::from(base_path).join(sanitize(username));
|
||||
fs::create_dir_all(&data_path)?;
|
||||
|
||||
inner_builder = inner_builder.sled_store(data_path, builder.passphrase.as_deref());
|
||||
let mut state_store =
|
||||
matrix_sdk_sled::SledStateStore::builder().path(data_path.to_owned());
|
||||
|
||||
if let Some(passphrase) = builder.passphrase.as_deref() {
|
||||
state_store = state_store.passphrase(passphrase.to_owned());
|
||||
}
|
||||
|
||||
let state_store = state_store.build()?;
|
||||
|
||||
let crypto_store = RUNTIME.block_on(matrix_sdk_sqlite::SqliteCryptoStore::open(
|
||||
&data_path,
|
||||
builder.passphrase.as_deref(),
|
||||
))?;
|
||||
|
||||
let store_config =
|
||||
StoreConfig::new().state_store(state_store).crypto_store(crypto_store);
|
||||
|
||||
inner_builder = inner_builder.store_config(store_config)
|
||||
}
|
||||
|
||||
// Determine server either from URL, server name or user ID.
|
||||
|
|
Loading…
Reference in New Issue