Skip to main content

moe_plugin_sdk/security/
verifier.rs

1use serde::{Deserialize, Serialize};
2use crate::types::{PluginType, Capability};
3
4#[derive(Serialize, Deserialize)]
5pub struct PluginHeader {
6    pub name: String,
7    pub version: semver::Version,
8    pub plugin_type: PluginType,
9    pub target_runtime: String,
10    pub cmir_version: u32,
11}
12
13#[derive(Serialize, Deserialize)]
14pub struct PluginManifest {
15    pub required_capabilities: Vec<Capability>,
16    pub forbidden_capabilities: Vec<Capability>,
17    pub deterministic: bool,
18    pub offline_only: bool,
19    pub execution_timeout_ms: u64,
20}
21
22pub struct SPF13 {
23    pub header: PluginHeader,
24    pub manifest: PluginManifest,
25    pub payload: Vec<u8>,
26    pub signature: [u8; 64], // ed25519 signature
27    pub checksum: [u8; 32],  // sha256 hash
28}