confium_pki/delegation/
operation.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(tag = "kind", rename_all = "snake_case")]
8pub enum Operation {
9 SignCert(SignCertSpec),
11 SignDocument(SignDocSpec),
13 ThresholdSign(ThresholdSignSpec),
15 Encrypt(EncryptSpec),
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, Default)]
21pub struct SignCertSpec {
22 pub permitted_cert_types: Vec<String>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, Default)]
28pub struct SignDocSpec {
29 pub permitted_mime_types: Vec<String>,
31 pub permitted_formats: Vec<SignatureFormat>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
37#[serde(rename_all = "snake_case")]
38pub enum SignatureFormat {
39 Raw,
41 Cms,
43 Xmldsig,
45 Jws,
47 Cose,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize, Default)]
53pub struct ThresholdSignSpec {
54 pub permitted_schemes: Vec<String>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
60pub struct EncryptSpec {
61 pub permitted_recipients: Vec<String>,
63}