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_position: Option<crate::store_commit::StoreBatchCommitRef>,
31}
32
33#[derive(Clone, Serialize, Deserialize)]
36#[serde(deny_unknown_fields)]
37pub struct OwnerRecoveryAuthority {
38 pub owner_identity_secret: String,
39 pub owner_grant: crate::membership::MembershipGrantId,
40 pub recovery: crate::store_commit::OwnerRecoveryCursor,
41 pub published_at: String,
42}
43
44impl std::fmt::Debug for RestoreAuthority {
45 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
46 match self {
47 Self::ActivatedContinuation(value) => f
48 .debug_struct("ActivatedContinuation")
49 .field("identity_signing_secret", &"<redacted>")
50 .field("device_signing_secret", &"<redacted>")
51 .field("registration", &value.registration)
52 .field("initial_ack", &value.initial_ack)
53 .field("activation", &value.activation)
54 .field("latest_ack", &value.latest_ack)
55 .field("latest_position", &value.latest_position)
56 .finish(),
57 Self::OwnerRecovery(value) => f
58 .debug_struct("OwnerRecovery")
59 .field("owner_identity_secret", &"<redacted>")
60 .field("owner_grant", &value.owner_grant)
61 .field("recovery", &value.recovery)
62 .finish(),
63 }
64 }
65}