Replace Arc<Box<dyn (Crypto|State)Store>> by Arc<dyn (Crypto|State)Store>
parent
eed2b37885
commit
6b685b671d
|
@ -52,7 +52,7 @@ pub struct Room {
|
|||
room_id: Arc<RoomId>,
|
||||
own_user_id: Arc<UserId>,
|
||||
inner: Arc<SyncRwLock<RoomInfo>>,
|
||||
store: Arc<Box<dyn StateStore>>,
|
||||
store: Arc<dyn StateStore>,
|
||||
}
|
||||
|
||||
/// The room summary containing member counts and members that should be used to
|
||||
|
@ -83,7 +83,7 @@ pub enum RoomType {
|
|||
impl Room {
|
||||
pub(crate) fn new(
|
||||
own_user_id: &UserId,
|
||||
store: Arc<Box<dyn StateStore>>,
|
||||
store: Arc<dyn StateStore>,
|
||||
room_id: &RoomId,
|
||||
room_type: RoomType,
|
||||
) -> Self {
|
||||
|
@ -104,7 +104,7 @@ impl Room {
|
|||
|
||||
pub(crate) fn restore(
|
||||
own_user_id: &UserId,
|
||||
store: Arc<Box<dyn StateStore>>,
|
||||
store: Arc<dyn StateStore>,
|
||||
room_info: RoomInfo,
|
||||
) -> Self {
|
||||
Self {
|
||||
|
|
|
@ -289,7 +289,7 @@ pub trait StateStore: AsyncTraitDeps {
|
|||
/// `StateStore` implementation.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Store {
|
||||
inner: Arc<Box<dyn StateStore>>,
|
||||
inner: Arc<dyn StateStore>,
|
||||
pub(crate) session: Arc<RwLock<Option<Session>>>,
|
||||
pub(crate) sync_token: Arc<RwLock<Option<String>>>,
|
||||
rooms: Arc<DashMap<RoomId, Room>>,
|
||||
|
@ -405,10 +405,10 @@ impl Store {
|
|||
}
|
||||
|
||||
impl Deref for Store {
|
||||
type Target = Box<dyn StateStore>;
|
||||
type Target = dyn StateStore;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&self.inner
|
||||
&*self.inner
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ impl Device {
|
|||
event_type: EventType,
|
||||
content: Value,
|
||||
) -> OlmResult<(Session, EncryptedEventContent)> {
|
||||
self.inner.encrypt(&**self.verification_machine.store, event_type, content).await
|
||||
self.inner.encrypt(&*self.verification_machine.store, event_type, content).await
|
||||
}
|
||||
|
||||
/// Encrypt the given inbound group session as a forwarded room key for this
|
||||
|
|
|
@ -423,14 +423,10 @@ pub(crate) mod test {
|
|||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(user_id())));
|
||||
let user_id = Arc::new(user_id());
|
||||
let account = ReadOnlyAccount::new(&user_id, &device_id());
|
||||
let store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(MemoryStore::new()));
|
||||
let store: Arc<dyn CryptoStore> = Arc::new(MemoryStore::new());
|
||||
let verification = VerificationMachine::new(account, identity.clone(), store);
|
||||
let store = Store::new(
|
||||
user_id.clone(),
|
||||
identity,
|
||||
Arc::new(Box::new(MemoryStore::new())),
|
||||
verification,
|
||||
);
|
||||
let store =
|
||||
Store::new(user_id.clone(), identity, Arc::new(MemoryStore::new()), verification);
|
||||
IdentityManager::new(user_id, device_id().into(), store)
|
||||
}
|
||||
|
||||
|
|
|
@ -758,7 +758,7 @@ pub(crate) mod test {
|
|||
let verification_machine = VerificationMachine::new(
|
||||
ReadOnlyAccount::new(second.user_id(), second.device_id()),
|
||||
private_identity.clone(),
|
||||
Arc::new(Box::new(MemoryStore::new())),
|
||||
Arc::new(MemoryStore::new()),
|
||||
);
|
||||
|
||||
let first = Device {
|
||||
|
@ -801,7 +801,7 @@ pub(crate) mod test {
|
|||
let verification_machine = VerificationMachine::new(
|
||||
ReadOnlyAccount::new(device.user_id(), device.device_id()),
|
||||
id.clone(),
|
||||
Arc::new(Box::new(MemoryStore::new())),
|
||||
Arc::new(MemoryStore::new()),
|
||||
);
|
||||
|
||||
let public_identity = identity.as_public_identity().await.unwrap();
|
||||
|
|
|
@ -846,7 +846,7 @@ mod test {
|
|||
fn bob_machine() -> KeyRequestMachine {
|
||||
let user_id = Arc::new(bob_id());
|
||||
let account = ReadOnlyAccount::new(&user_id, &alice_device_id());
|
||||
let store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(MemoryStore::new()));
|
||||
let store: Arc<dyn CryptoStore> = Arc::new(MemoryStore::new());
|
||||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(bob_id())));
|
||||
let verification = VerificationMachine::new(account, identity.clone(), store.clone());
|
||||
let store = Store::new(user_id.clone(), identity, store, verification);
|
||||
|
@ -865,7 +865,7 @@ mod test {
|
|||
let user_id: Arc<UserId> = alice_id().into();
|
||||
let account = ReadOnlyAccount::new(&user_id, &alice_device_id());
|
||||
let device = ReadOnlyDevice::from_account(&account).await;
|
||||
let store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(MemoryStore::new()));
|
||||
let store: Arc<dyn CryptoStore> = Arc::new(MemoryStore::new());
|
||||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(alice_id())));
|
||||
let verification = VerificationMachine::new(account, identity.clone(), store.clone());
|
||||
let store = Store::new(user_id.clone(), identity, store, verification);
|
||||
|
|
|
@ -144,7 +144,7 @@ impl OlmMachine {
|
|||
let user_id = Arc::new(user_id.clone());
|
||||
let user_identity = Arc::new(Mutex::new(user_identity));
|
||||
|
||||
let store = Arc::new(store);
|
||||
let store: Arc<dyn CryptoStore> = store.into();
|
||||
let verification_machine =
|
||||
VerificationMachine::new(account.clone(), user_identity.clone(), store.clone());
|
||||
let store =
|
||||
|
|
|
@ -332,7 +332,7 @@ mod test {
|
|||
|
||||
let users_for_key_claim = Arc::new(DashMap::new());
|
||||
let account = ReadOnlyAccount::new(&user_id, &device_id);
|
||||
let store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(MemoryStore::new()));
|
||||
let store: Arc<dyn CryptoStore> = Arc::new(MemoryStore::new());
|
||||
store.save_account(account.clone()).await.unwrap();
|
||||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(user_id.clone())));
|
||||
let verification =
|
||||
|
|
|
@ -94,7 +94,7 @@ pub type Result<T, E = CryptoStoreError> = std::result::Result<T, E>;
|
|||
pub(crate) struct Store {
|
||||
user_id: Arc<UserId>,
|
||||
identity: Arc<Mutex<PrivateCrossSigningIdentity>>,
|
||||
inner: Arc<Box<dyn CryptoStore>>,
|
||||
inner: Arc<dyn CryptoStore>,
|
||||
verification_machine: VerificationMachine,
|
||||
}
|
||||
|
||||
|
@ -140,7 +140,7 @@ impl Store {
|
|||
pub fn new(
|
||||
user_id: Arc<UserId>,
|
||||
identity: Arc<Mutex<PrivateCrossSigningIdentity>>,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
verification_machine: VerificationMachine,
|
||||
) -> Self {
|
||||
Self { user_id, identity, inner: store, verification_machine }
|
||||
|
@ -238,7 +238,7 @@ impl Deref for Store {
|
|||
type Target = dyn CryptoStore;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&**self.inner
|
||||
&*self.inner
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ use crate::{
|
|||
pub struct VerificationMachine {
|
||||
account: ReadOnlyAccount,
|
||||
private_identity: Arc<Mutex<PrivateCrossSigningIdentity>>,
|
||||
pub(crate) store: Arc<Box<dyn CryptoStore>>,
|
||||
pub(crate) store: Arc<dyn CryptoStore>,
|
||||
verifications: VerificationCache,
|
||||
requests: Arc<DashMap<String, VerificationRequest>>,
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ impl VerificationMachine {
|
|||
pub(crate) fn new(
|
||||
account: ReadOnlyAccount,
|
||||
identity: Arc<Mutex<PrivateCrossSigningIdentity>>,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
) -> Self {
|
||||
Self {
|
||||
account,
|
||||
|
@ -358,9 +358,9 @@ mod test {
|
|||
store.save_devices(vec![bob_device]).await;
|
||||
bob_store.save_devices(vec![alice_device.clone()]).await;
|
||||
|
||||
let bob_store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(bob_store));
|
||||
let bob_store: Arc<dyn CryptoStore> = Arc::new(bob_store);
|
||||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(alice_id())));
|
||||
let machine = VerificationMachine::new(alice, identity, Arc::new(Box::new(store)));
|
||||
let machine = VerificationMachine::new(alice, identity, Arc::new(store));
|
||||
let (bob_sas, start_content) = Sas::start(
|
||||
bob,
|
||||
PrivateCrossSigningIdentity::empty(bob_id()),
|
||||
|
@ -383,7 +383,7 @@ mod test {
|
|||
let alice = ReadOnlyAccount::new(&alice_id(), &alice_device_id());
|
||||
let identity = Arc::new(Mutex::new(PrivateCrossSigningIdentity::empty(alice_id())));
|
||||
let store = MemoryStore::new();
|
||||
let _ = VerificationMachine::new(alice, identity, Arc::new(Box::new(store)));
|
||||
let _ = VerificationMachine::new(alice, identity, Arc::new(store));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
|
|
@ -208,7 +208,7 @@ pub enum VerificationResult {
|
|||
#[derive(Clone, Debug)]
|
||||
pub struct IdentitiesBeingVerified {
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
device_being_verified: ReadOnlyDevice,
|
||||
identity_being_verified: Option<UserIdentities>,
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ impl VerificationRequest {
|
|||
cache: VerificationCache,
|
||||
account: ReadOnlyAccount,
|
||||
private_cross_signing_identity: PrivateCrossSigningIdentity,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
room_id: &RoomId,
|
||||
event_id: &EventId,
|
||||
other_user: &UserId,
|
||||
|
@ -99,7 +99,7 @@ impl VerificationRequest {
|
|||
cache: VerificationCache,
|
||||
account: ReadOnlyAccount,
|
||||
private_cross_signing_identity: PrivateCrossSigningIdentity,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
other_user: &UserId,
|
||||
) -> Self {
|
||||
let flow_id = Uuid::new_v4().to_string().into();
|
||||
|
@ -178,7 +178,7 @@ impl VerificationRequest {
|
|||
cache: VerificationCache,
|
||||
account: ReadOnlyAccount,
|
||||
private_cross_signing_identity: PrivateCrossSigningIdentity,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
sender: &UserId,
|
||||
flow_id: FlowId,
|
||||
content: &RequestContent,
|
||||
|
@ -377,7 +377,7 @@ struct RequestState<S: Clone> {
|
|||
account: ReadOnlyAccount,
|
||||
private_cross_signing_identity: PrivateCrossSigningIdentity,
|
||||
verification_cache: VerificationCache,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
flow_id: Arc<FlowId>,
|
||||
|
||||
/// The id of the user which is participating in this verification request.
|
||||
|
@ -418,7 +418,7 @@ impl RequestState<Created> {
|
|||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
cache: VerificationCache,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
other_user_id: &UserId,
|
||||
flow_id: &FlowId,
|
||||
) -> Self {
|
||||
|
@ -479,7 +479,7 @@ impl RequestState<Requested> {
|
|||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
cache: VerificationCache,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
sender: &UserId,
|
||||
flow_id: &FlowId,
|
||||
content: &RequestContent,
|
||||
|
@ -626,7 +626,7 @@ impl RequestState<Ready> {
|
|||
|
||||
fn start_sas(
|
||||
self,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
other_device: ReadOnlyDevice,
|
||||
|
|
|
@ -106,7 +106,7 @@ impl Sas {
|
|||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
other_device: ReadOnlyDevice,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
other_identity: Option<UserIdentities>,
|
||||
) -> Sas {
|
||||
let flow_id = inner_sas.verification_flow_id();
|
||||
|
@ -140,7 +140,7 @@ impl Sas {
|
|||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
other_device: ReadOnlyDevice,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
other_identity: Option<UserIdentities>,
|
||||
transaction_id: Option<String>,
|
||||
) -> (Sas, OutgoingContent) {
|
||||
|
@ -180,7 +180,7 @@ impl Sas {
|
|||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
other_device: ReadOnlyDevice,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
other_identity: Option<UserIdentities>,
|
||||
) -> (Sas, OutgoingContent) {
|
||||
let (inner, content) = InnerSas::start_in_room(
|
||||
|
@ -218,7 +218,7 @@ impl Sas {
|
|||
pub(crate) fn from_start_event(
|
||||
flow_id: FlowId,
|
||||
content: &StartContent,
|
||||
store: Arc<Box<dyn CryptoStore>>,
|
||||
store: Arc<dyn CryptoStore>,
|
||||
account: ReadOnlyAccount,
|
||||
private_identity: PrivateCrossSigningIdentity,
|
||||
other_device: ReadOnlyDevice,
|
||||
|
@ -522,12 +522,12 @@ mod test {
|
|||
let bob = ReadOnlyAccount::new(&bob_id(), &bob_device_id());
|
||||
let bob_device = ReadOnlyDevice::from_account(&bob).await;
|
||||
|
||||
let alice_store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(MemoryStore::new()));
|
||||
let alice_store: Arc<dyn CryptoStore> = Arc::new(MemoryStore::new());
|
||||
let bob_store = MemoryStore::new();
|
||||
|
||||
bob_store.save_devices(vec![alice_device.clone()]).await;
|
||||
|
||||
let bob_store: Arc<Box<dyn CryptoStore>> = Arc::new(Box::new(bob_store));
|
||||
let bob_store: Arc<dyn CryptoStore> = Arc::new(bob_store);
|
||||
|
||||
let (alice, content) = Sas::start(
|
||||
alice,
|
||||
|
|
Loading…
Reference in New Issue