vta_sdk/protocols/key_management/
sign.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
5#[serde(rename_all = "lowercase")]
6#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
7pub enum SignAlgorithm {
8 EdDSA,
10 ES256,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
17pub struct SignRequestBody {
18 pub key_id: String,
20 pub payload: String,
22 pub algorithm: SignAlgorithm,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
29pub struct SignResultBody {
30 pub key_id: String,
32 pub signature: String,
34 pub algorithm: SignAlgorithm,
36}
37
38impl std::fmt::Display for SignAlgorithm {
39 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
40 match self {
41 SignAlgorithm::EdDSA => write!(f, "eddsa"),
42 SignAlgorithm::ES256 => write!(f, "es256"),
43 }
44 }
45}