Skip to main content

yacen_core/
models.rs

1use crate::security::ed25519::ED25519_PUBLIC_KEY_LEN;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5pub const KEYPAIR_BYTES_LENGTH: usize = 83;
6pub const LOCAL_KEY_BYTES_LENGTH: usize = 32;
7
8#[derive(Serialize, Deserialize)]
9pub struct Identity {
10    pub local_id: String, // hex([32]bytes)
11    pub name: String,
12    pub public_key: [u8; ED25519_PUBLIC_KEY_LEN],
13    pub local_key: [u8; LOCAL_KEY_BYTES_LENGTH],
14}
15
16pub type KnownIdentities = HashMap<[u8; ED25519_PUBLIC_KEY_LEN], Identity>;
17
18#[derive(Serialize, Deserialize)]
19pub struct Profile {
20    pub name: String,
21    pub keypair: Vec<u8>,
22    pub known_identities: KnownIdentities,
23}