1use libpep::data::traits::{HasStructure, Pseudonymizable, Rekeyable, Transcryptable};
2use libpep::factors::{EncryptionContext, PseudonymizationDomain};
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug)]
6pub struct PseudonymizationRequest<T: Pseudonymizable> {
8 pub encrypted: T,
10 pub domain_from: PseudonymizationDomain,
12 pub domain_to: PseudonymizationDomain,
14 pub session_from: EncryptionContext,
16 pub session_to: EncryptionContext,
18}
19
20#[derive(Serialize, Deserialize)]
21pub struct PseudonymizationResponse<T: Pseudonymizable> {
22 pub result: T,
24}
25
26#[derive(Serialize, Deserialize, Debug)]
27pub struct PseudonymizationBatchRequest<T: Pseudonymizable + HasStructure> {
29 pub encrypted: Vec<T>,
31 pub domain_from: PseudonymizationDomain,
33 pub domain_to: PseudonymizationDomain,
35 pub session_from: EncryptionContext,
37 pub session_to: EncryptionContext,
39}
40
41#[derive(Serialize, Deserialize)]
42pub struct PseudonymizationBatchResponse<T: Pseudonymizable + HasStructure> {
43 pub result: Vec<T>,
46}
47
48#[derive(Serialize, Deserialize, Debug)]
49pub struct RekeyRequest<T: Rekeyable> {
51 pub encrypted: T,
53 pub session_from: EncryptionContext,
55 pub session_to: EncryptionContext,
57}
58
59#[derive(Serialize, Deserialize)]
60pub struct RekeyResponse<T: Rekeyable> {
61 pub result: T,
63}
64
65#[derive(Serialize, Deserialize, Debug)]
66pub struct RekeyBatchRequest<T: Rekeyable + HasStructure> {
68 pub encrypted: Vec<T>,
70 pub session_from: EncryptionContext,
72 pub session_to: EncryptionContext,
74}
75
76#[derive(Serialize, Deserialize)]
77pub struct RekeyBatchResponse<T: Rekeyable + HasStructure> {
78 pub result: Vec<T>,
80}
81
82#[derive(Serialize, Deserialize, Debug)]
83pub struct TranscryptionRequest<T: Transcryptable> {
85 pub encrypted: T,
87 pub domain_from: PseudonymizationDomain,
89 pub domain_to: PseudonymizationDomain,
91 pub session_from: EncryptionContext,
93 pub session_to: EncryptionContext,
95}
96
97#[derive(Serialize, Deserialize)]
98pub struct TranscryptionResponse<T: Transcryptable> {
99 pub result: T,
101}
102
103#[derive(Serialize, Deserialize, Debug)]
104pub struct TranscryptionBatchRequest<T: Transcryptable + HasStructure> {
106 pub encrypted: Vec<T>,
108 pub domain_from: PseudonymizationDomain,
110 pub domain_to: PseudonymizationDomain,
112 pub session_from: EncryptionContext,
114 pub session_to: EncryptionContext,
116}
117
118#[derive(Serialize, Deserialize)]
119pub struct TranscryptionBatchResponse<T: Transcryptable + HasStructure> {
120 pub result: Vec<T>,
123}