1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use serde::{Deserialize, Serialize};
use serde_bytes;
use x25519_dalek::PublicKey;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MessageRecipientHeader {
pub key_type: String,
#[serde(with = "serde_bytes")]
pub ephemeral_public_key: Vec<u8>,
#[serde(with = "serde_bytes")]
pub encrypted_file_key: Vec<u8>,
}
impl MessageRecipientHeader {
pub fn get_ephemeral_public_key(&self) -> PublicKey {
let mut key_bytes = [0; 32];
key_bytes.copy_from_slice(&self.ephemeral_public_key[..32]);
PublicKey::from(key_bytes)
}
}