securedrop_protocol_minimal/wire/
core.rs1use crate::FetchResponse;
2use crate::keys::{SignedKeyBundlePublic, SignedLongtermKeyBundle};
3use crate::message::MessagePublicKey;
4use crate::primitives::ristretto255::DHPublicKey;
5use crate::sign::{
6 FpfOnNewsroom, JournalistLongTermKey, NewsroomOnJournalist, Signature, VerifyingKey,
7};
8use alloc::vec::Vec;
9use serde::{Deserialize, Serialize};
10use uuid::Uuid;
11
12#[cfg_attr(not(hax), derive(Serialize, Deserialize))]
19pub struct JournalistLongTermView {
20 pub vk: VerifyingKey,
21 pub signed_longterm_key_bundle: SignedLongtermKeyBundle,
22 pub nr_signature: Signature<NewsroomOnJournalist>,
23}
24
25#[cfg_attr(not(hax), derive(Serialize, Deserialize))]
29pub struct WelcomeBundle {
30 pub newsroom_verifying_key: VerifyingKey,
31 pub fpf_sig: Signature<FpfOnNewsroom>,
32 pub journalists: Vec<JournalistLongTermView>,
33}
34
35#[cfg_attr(not(hax), derive(Serialize, Deserialize))]
38pub struct JournalistEphemeralKeys {
39 pub vk: VerifyingKey,
40 pub ephemeral: SignedKeyBundlePublic,
41}
42
43pub struct MessageChallengeFetchRequest {}
47
48#[cfg_attr(not(hax), derive(Serialize, Deserialize))]
52pub struct MessageChallengeFetchResponse {
53 pub count: usize,
56 pub messages: Vec<FetchResponse>,
58}
59
60pub struct MessageFetchRequest {
64 pub message_id: Uuid,
66}