use super::KeyType;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize)]
pub struct ReadKeyResponse {
#[serde(rename = "type")]
pub key_type: KeyType,
pub deletion_allowed: bool,
pub derived: bool,
pub exportable: bool,
pub allow_plaintext_backup: bool,
pub keys: ReadKeyData,
pub min_decryption_version: u64,
pub min_encryption_version: u64,
pub name: String,
pub supports_encryption: bool,
pub supports_decryption: bool,
pub supports_derivation: bool,
pub supports_signing: bool,
pub imported: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ReadKeyData {
Symmetric(HashMap<String, u64>),
Asymmetric(HashMap<String, ReadPublicKeyEntry>),
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub struct ReadPublicKeyEntry {
pub creation_time: String,
pub name: String,
pub public_key: String,
}
#[derive(Deserialize, Debug, Serialize)]
pub struct ListKeysResponse {
pub keys: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ExportKeyResponse {
pub name: String,
pub keys: HashMap<String, String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EncryptDataResponse {
pub ciphertext: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DecryptDataResponse {
pub plaintext: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RewrapDataResponse {
pub ciphertext: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateDataKeyResponse {
pub plaintext: Option<String>,
pub ciphertext: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateRandomBytesResponse {
pub random_bytes: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct HashDataResponse {
pub sum: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateHmacResponse {
pub hmac: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SignDataResponse {
pub signature: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VerifySignedDataResponse {
pub valid: bool,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BackupKeyResponse {
pub backup: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ReadTransitCacheConfigurationResponse {
pub size: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GetWrappingKeyResponse {
pub public_key: String,
}