1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone)]
12#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
13pub struct ClientServerMessage1 {
14 pub username: String,
15 #[serde(with = "crate::util::base64_vec_u8")]
16 pub client_public_key: Vec<u8>,
17}
18
19#[derive(Debug, Clone)]
24#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
25pub struct ServerClientMessage2 {
26 #[serde(with = "crate::util::base64_vec_u8")]
27 pub salt: Vec<u8>,
28 #[serde(with = "crate::util::base64_vec_u8")]
29 pub server_public_key: Vec<u8>,
30}
31
32#[derive(Debug, Clone)]
38#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
39pub struct ClientServerMessage3 {
40 #[serde(with = "crate::util::base64_vec_u8")]
41 pub client_proof: Vec<u8>,
42}
43
44#[derive(Debug, Clone)]
49#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
50pub struct ServerClientMessage4 {
51 #[serde(with = "crate::util::base64_vec_u8")]
52 pub server_proof: Vec<u8>,
53}