paas_api/
sessions.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use libpep::distributed::key_blinding::SessionKeyShare;
use libpep::high_level::contexts::EncryptionContext;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
/// Get all current open sessions (for a user).
pub struct GetSessionsRequest {
    pub username: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
/// Return all current sessions.
pub struct GetSessionResponse {
    pub sessions: Vec<EncryptionContext>,
}

#[derive(Serialize, Deserialize, Debug)]
/// Start a new PEP session
pub struct StartSessionResponse {
    /// A session id
    pub session_id: EncryptionContext,
    /// The secret session key share for this session. Will be provided just once.
    pub key_share: SessionKeyShare,
}

#[derive(Serialize, Deserialize, Debug)]
/// Terminate a session
pub struct EndSessionRequest {
    pub session_id: EncryptionContext,
}