use libpep::data::traits::{Pseudonymizable, Rekeyable, Transcryptable};
use libpep::factors::{EncryptionContext, PseudonymizationDomain};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct PseudonymizationRequest<T: Pseudonymizable> {
pub encrypted: T,
pub domain_from: PseudonymizationDomain,
pub domain_to: PseudonymizationDomain,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct PseudonymizationResponse<T: Pseudonymizable> {
pub result: T,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct PseudonymizationBatchRequest<T: Pseudonymizable> {
pub encrypted: Vec<T>,
pub domain_from: PseudonymizationDomain,
pub domain_to: PseudonymizationDomain,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct PseudonymizationBatchResponse<T: Pseudonymizable> {
pub result: Vec<T>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct RekeyRequest<T: Rekeyable> {
pub encrypted: T,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct RekeyResponse<T: Rekeyable> {
pub result: T,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct RekeyBatchRequest<T: Rekeyable> {
pub encrypted: Vec<T>,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct RekeyBatchResponse<T: Rekeyable> {
pub result: Vec<T>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct TranscryptionRequest<T: Transcryptable> {
pub encrypted: T,
pub domain_from: PseudonymizationDomain,
pub domain_to: PseudonymizationDomain,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct TranscryptionResponse<T: Transcryptable> {
pub result: T,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct TranscryptionBatchRequest<T: Transcryptable> {
pub encrypted: Vec<T>,
pub domain_from: PseudonymizationDomain,
pub domain_to: PseudonymizationDomain,
pub session_from: EncryptionContext,
pub session_to: EncryptionContext,
}
#[derive(Serialize, Deserialize)]
pub struct TranscryptionBatchResponse<T: Transcryptable> {
pub result: Vec<T>,
}