coven_protocol/
recovery.rs1use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Serialize, Deserialize)]
8#[serde(rename_all = "snake_case", deny_unknown_fields)]
9pub enum RestoreAuthority {
10 ActivatedContinuation(ActivatedContinuation),
12 OwnerRecovery(OwnerRecoveryAuthority),
14}
15
16#[derive(Clone, Serialize, Deserialize)]
18#[serde(deny_unknown_fields)]
19pub struct ActivatedContinuation {
20 pub identity_signing_secret: String,
21 pub device_signing_secret: String,
22 pub registration: crate::store_commit::StoreDeviceRegistrationRef,
23 pub registration_bytes: Vec<u8>,
24 pub registration_prepared: crate::objects::PreparedExactObject,
25 pub initial_ack: crate::store_commit::StoreAckRef,
26 pub initial_ack_bytes: Vec<u8>,
27 pub initial_ack_prepared: crate::objects::PreparedExactObject,
28 pub activation: crate::store_commit::StoreDeviceRegistrationActivation,
29 pub latest_ack: crate::store_commit::StoreAckRef,
30 pub latest_snapshot: Option<crate::store_commit::StoreSnapshotRef>,
31 pub latest_position: Option<crate::store_commit::StoreBatchCommitRef>,
32}
33
34#[derive(Clone, Serialize, Deserialize)]
37#[serde(deny_unknown_fields)]
38pub struct OwnerRecoveryAuthority {
39 pub owner_identity_secret: String,
40 pub owner_grant: crate::membership::MembershipGrantId,
41 pub recovery: crate::store_commit::OwnerRecoveryCursor,
42 pub published_at: String,
43}
44
45impl std::fmt::Debug for RestoreAuthority {
46 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
47 match self {
48 Self::ActivatedContinuation(value) => f
49 .debug_struct("ActivatedContinuation")
50 .field("identity_signing_secret", &"<redacted>")
51 .field("device_signing_secret", &"<redacted>")
52 .field("registration", &value.registration)
53 .field("initial_ack", &value.initial_ack)
54 .field("activation", &value.activation)
55 .field("latest_ack", &value.latest_ack)
56 .field("latest_snapshot", &value.latest_snapshot)
57 .field("latest_position", &value.latest_position)
58 .finish(),
59 Self::OwnerRecovery(value) => f
60 .debug_struct("OwnerRecovery")
61 .field("owner_identity_secret", &"<redacted>")
62 .field("owner_grant", &value.owner_grant)
63 .field("recovery", &value.recovery)
64 .finish(),
65 }
66 }
67}